Revises page ranking factor controls to reflect current Yioop usage, a=chris

Chris Pollett [2022-07-27 01:Jul:th]
Revises page ranking factor controls to reflect current Yioop usage, a=chris
Filename
src/configs/Config.php
src/configs/PublicHelpPages.php
src/controllers/components/CrawlComponent.php
src/css/search.css
src/data/public_default.db
src/library/BPlusTree.php
src/library/IndexShard.php
src/library/index_bundle_iterators/IntersectIterator.php
src/library/index_bundle_iterators/WordIterator.php
src/locale/ar/configure.ini
src/locale/bn/configure.ini
src/locale/de/configure.ini
src/locale/el_GR/configure.ini
src/locale/en_US/configure.ini
src/locale/es/configure.ini
src/locale/fa/configure.ini
src/locale/fr_FR/configure.ini
src/locale/he/configure.ini
src/locale/hi/configure.ini
src/locale/id/configure.ini
src/locale/it/configure.ini
src/locale/ja/configure.ini
src/locale/kn/configure.ini
src/locale/ko/configure.ini
src/locale/nl/configure.ini
src/locale/pl/configure.ini
src/locale/pt/configure.ini
src/locale/ru/configure.ini
src/locale/te/configure.ini
src/locale/th/configure.ini
src/locale/tl/configure.ini
src/locale/tr/configure.ini
src/locale/vi_VN/configure.ini
src/locale/vi_VN/statistics.txt
src/locale/zh_CN/configure.ini
src/locale/zh_CN/statistics.txt
src/models/ProfileModel.php
src/views/elements/PageoptionsElement.php
diff --git a/src/configs/Config.php b/src/configs/Config.php
index 61fc8857b..574b60964 100755
--- a/src/configs/Config.php
+++ b/src/configs/Config.php
@@ -505,12 +505,19 @@ if (file_exists(WORK_DIRECTORY . PROFILE_FILE_NAME)) {
     nsdefine('RESULT_SCORE', true);
     nsdefine('SIGNIN_LINK', true);
     nsdefine('SUBSEARCH_LINK', true);
-    /** BM25F weight for title text */
-    nsdefine('TITLE_WEIGHT', 4);
-    /** BM25F weight for other text within doc*/
-    nsdefine('DESCRIPTION_WEIGHT', 1);
-    /** BM25F weight for other text within links to a doc*/
-    nsdefine('LINK_WEIGHT', 2);
+    /**
+     *  Bonus to add to relevance score if the hostname contains the search
+     *  term.
+     */
+    nsdefine('HOST_KEYWORD_BONUS', 10);
+    /**
+     *  Bonus to add to doc rank score if the url is a company level domain
+     */
+    nsdefine('CLD_URL_BONUS', 2);
+    /**
+     *  Bonus to add to doc rank score if url is a a hostname
+     */
+    nsdefine('HOST_URL_BONUS', 0.5);
     /**
      * If that many exist, the minimum number of results to get
      * and group before trying to compute the top x (say 10) results
@@ -918,7 +925,9 @@ nsconddefine('PUNCT', "\.|\,|\:|\;|\"|\'|\[|\/|\%|\?|-|\^" .
     "\’|\‘|©|®|™|℠|…|\/|\>|,|\=|。|)|:|、|" .
     "”|“|《|》|(|「|」|★|【|】|·|\+|\*|;".
         "|!|—|―|?|!|،|؛|؞|؟|٪|٬|٭|\‚|\‘");
-/** Number of total description deemed title */
+/** Maximum number of characters to use for a title from a string
+ *  of text that begins with something like a title
+ */
 nsconddefine('AD_HOC_TITLE_LENGTH', 50);
 /** Maximum number of simultaneous crawls (each concurrent crawl gets one
  * channel
diff --git a/src/configs/PublicHelpPages.php b/src/configs/PublicHelpPages.php
index 6e95e1062..6a318b654 100644
--- a/src/configs/PublicHelpPages.php
+++ b/src/configs/PublicHelpPages.php
@@ -2870,7 +2870,7 @@ or by enclosing the math in backticks:

 `[[1, -2],[3,4]]`.

-Rendering of math is done using [[https://www.mathjax.org/|MathJax]], making us of the [[https://en.wikipedia.org/wiki/ASCIIMathML|ASCIImathml]] extensions.
+Rendering of math is done using [[https://www.mathjax.org/|MathJax]], making use of the [[https://en.wikipedia.org/wiki/ASCIIMathML|ASCIImathml]] extensions.

 ==Links and Relationships==
 : A hypertext link to another document can be inserted into a wiki page using
@@ -42575,28 +42575,41 @@ END_HEAD_VARSThe '''Search Results Grouping''' con
 '''Minimum Results to Group''' controls the number of results the name server wants to have before sorting and grouping of results is done.
 EOD;
 $help_pages["en-US"]["Page_Ranking_Factors"] = <<< 'EOD'
-page_type=standard
+alternative_path=
+
+author=
+
+default_sort=aname
+
+description=

 page_alias=

 page_border=solid-border

-toc=true
+page_header=

-title=
+page_footer=

-author=
+page_type=standard

 robots=

-description=
+share_expires=-2

-page_header=
+title=
+
+toc=true
+
+url_shortener=
+
+END_HEAD_VARSThe score used to rank a page is computed as the document rank score + a relevance score. This score is then combined with a proximity score if the query has more than two terms using reciprocal rank fusion. Below are some bonuses which may be applied to the document rank and relevance scores.
+
+; &#039;&#039;&#039;Host Keyword Bonus&#039;&#039;&#039; :  Bonus to add to relevance score if the hostname contains the search term.
+; &#039;&#039;&#039;CLD Url Bonus&#039;&#039;&#039; : Bonus to add to doc rank score if the url is a company level domain.
+; &#039;&#039;&#039;Host Url Bonus&#039;&#039;&#039; : Bonus to add to doc rank score if the url is a a hostname.

-page_footer=

-END_HEAD_VARSIn computing the relevance of a word/term to a page the fields on this form allow one to set the relative weight given to the word depending on whether it appears in the title, a link, or if it appears anywhere
-else (description).
 EOD;
 $help_pages["en-US"]["Page_Rules"] = <<< 'EOD'
 page_type=standard
diff --git a/src/controllers/components/CrawlComponent.php b/src/controllers/components/CrawlComponent.php
index 4f35504ea..41deceaad 100644
--- a/src/controllers/components/CrawlComponent.php
+++ b/src/controllers/components/CrawlComponent.php
@@ -1692,21 +1692,21 @@ class CrawlComponent extends Component implements CrawlConstants
                 'SIMILAR_LINK', 'IN_LINK',  'MORE_RESULT', 'RESULT_SCORE',
                 'SIGNIN_LINK', 'SUBSEARCH_LINK', 'WORD_CLOUD', 'WORD_SUGGEST']);
         }
-        $weights = ['TITLE_WEIGHT' => 4,
-            'DESCRIPTION_WEIGHT' => 1, 'LINK_WEIGHT' => 2,
+        $bonuses = ['HOST_KEYWORD_BONUS' => 10,
+            'CLD_URL_BONUS' => 2, 'HOST_URL_BONUS' => 0.5,
             'MIN_RESULTS_TO_GROUP' => C\MIN_RESULTS_TO_GROUP];
         $change = false;
-        foreach ($weights as $weight => $value) {
-            if (isset($_REQUEST[$weight])) {
-                $data[$weight] = $parent->clean($_REQUEST[$weight], 'float', 1
+        foreach ($bonuses as $bonus => $value) {
+            if (isset($_REQUEST[$bonus])) {
+                $data[$bonus] = $parent->clean($_REQUEST[$bonus], 'float', 1
                     );
-                $profile[$weight] = $data[$weight];
+                $profile[$bonus] = $data[$bonus];
                 $change = true;
-            } else if (isset($profile[$weight]) && $profile[$weight] != ""){
-                $data[$weight] = $profile[$weight];
+            } else if (!empty($profile[$bonus])){
+                $data[$bonus] = $profile[$bonus];
             } else {
-                $data[$weight] = $value;
-                $profile[$weight] = $data[$weight];
+                $data[$bonus] = $value;
+                $profile[$bonus] = $data[$bonus];
                 $change = true;
             }
         }
diff --git a/src/css/search.css b/src/css/search.css
index a75f189cb..108681eca 100755
--- a/src/css/search.css
+++ b/src/css/search.css
@@ -3650,11 +3650,11 @@ td.instruct
    margin-right: 2px;
    vertical-align: top;
 }
-.html-ltr .weights-table th
+.html-ltr .bonus-table th
 {
     text-align: right;
 }
-.html-rtl .weights-table th
+.html-rtl .bonus-table th
 {
     text-align: left;
 }
diff --git a/src/data/public_default.db b/src/data/public_default.db
index c64f06f2f..ed85c7a25 100644
Binary files a/src/data/public_default.db and b/src/data/public_default.db differ
diff --git a/src/library/BPlusTree.php b/src/library/BPlusTree.php
index 682d3f78d..0b99d4d96 100644
--- a/src/library/BPlusTree.php
+++ b/src/library/BPlusTree.php
@@ -724,7 +724,7 @@ class BPlusTree
                 $current_folder = $nodes[$last_index];
             } else {
                 while ($first_index < $last_index) {
-                    $mid_index = ceil($first_index + $last_index);
+                    $mid_index = ceil(($first_index + $last_index)/2);
                     if ($nodes[$mid_index] > $exact_node) {
                         $last_index = $mid_index - 1;
                     } else {
diff --git a/src/library/IndexShard.php b/src/library/IndexShard.php
index 59f55bd26..bc6e37ae6 100644
--- a/src/library/IndexShard.php
+++ b/src/library/IndexShard.php
@@ -123,6 +123,18 @@ class IndexShard extends PersistentStructure implements CrawlConstants
      * Represents an empty prefix item
      */
     const STORE_FLAG = "\x80";
+    /**
+     * BM25F weight factor for terms in title
+     */
+    const TITLE_WEIGHT = 4.0;
+    /**
+     * BM25F weight factor for terms in description
+     */
+    const DESCRIPTION_WEIGHT = 2.0;
+    /**
+     * BM25F weight factor for terms in a link
+     */
+    const LINK_WEIGHT = 1.0;
     /**
      * Stores document id's and links to documents id's together with
      * summary offset information, and number of words in the doc/link
@@ -888,7 +900,7 @@ class IndexShard extends PersistentStructure implements CrawlConstants
             $average_doc_len = ($this->num_link_docs != 0) ?
                 $this->len_all_link_docs/$this->num_link_docs : 0;
             $num_docs = $this->num_link_docs;
-            $type_weight = floatval(C\LINK_WEIGHT);
+            $type_weight = self::LINK_WEIGHT;
         }
         if (!$skip_stats) {
             $item[self::RELEVANCE] = 0;
@@ -897,7 +909,7 @@ class IndexShard extends PersistentStructure implements CrawlConstants
                     $title_length,
                     $num_doc_or_links, $title_length, $num_docs,
                     $this->num_docs + $this->num_link_docs,
-                    floatval(C\TITLE_WEIGHT));
+                    self::TITLE_WEIGHT);
             }
             if ($occurrences[self::DESCRIPTION] > 0) {
                 $average_doc_len =
@@ -906,13 +918,13 @@ class IndexShard extends PersistentStructure implements CrawlConstants
                 self::docStats($item, $occurrences[self::DESCRIPTION],
                     $doc_len, $num_doc_or_links, $average_doc_len , $num_docs,
                     $this->num_docs + $this->num_link_docs,
-                    floatval(C\DESCRIPTION_WEIGHT));
+                    self::DESCRIPTION_WEIGHT);
             }
             if ($occurrences[self::LINKS] > 0) {
                 self::docStats($item, $occurrences[self::LINKS],
                     $doc_len, $num_doc_or_links, $average_doc_len , $num_docs,
                     $this->num_docs + $this->num_link_docs,
-                    floatval(C\LINK_WEIGHT));
+                    self::LINK_WEIGHT);
             }
             $aux_scores = 1;
             if (isset($item[self::USER_RANKS])) {
@@ -955,7 +967,7 @@ class IndexShard extends PersistentStructure implements CrawlConstants
         $num_scores = count($position_scores);
         $num_minus_one = $num_scores - 1;
         $score_keys = array_keys($position_scores);
-        $last_score = ($num_scores > 0) ? C\DESCRIPTION_WEIGHT *
+        $last_score = ($num_scores > 0) ? self::DESCRIPTION_WEIGHT *
             $position_scores[$score_keys[$num_minus_one]] : 1;
         $last_index = 0;
         $next_position = $title_length;
@@ -981,7 +993,7 @@ class IndexShard extends PersistentStructure implements CrawlConstants
                         if ($last_index >= $num_minus_one) {
                             $weight = $last_score;
                         } else {
-                            $weight = C\DESCRIPTION_WEIGHT *
+                            $weight = self::DESCRIPTION_WEIGHT *
                                 $position_scores[$score_keys[$last_index]];
                         }
                     }
@@ -1002,10 +1014,10 @@ class IndexShard extends PersistentStructure implements CrawlConstants
      * @return int a score for proximity
      */
     public function computeProximity($position_list, $is_doc) {
-        return (!$is_doc) ? floatval(C\LINK_WEIGHT):
+        return (!$is_doc) ? self::LINK_WEIGHT :
             ((isset($position_list[0]) &&
             $position_list[0] < C\AD_HOC_TITLE_LENGTH) ?
-            floatval(C\TITLE_WEIGHT) : floatval(C\DESCRIPTION_WEIGHT));
+            self::TITLE_WEIGHT : self::DESCRIPTION_WEIGHT);
     }
     /**
      * Computes BM25F relevance and a score for the supplied item based
diff --git a/src/library/index_bundle_iterators/IntersectIterator.php b/src/library/index_bundle_iterators/IntersectIterator.php
index b39f5797e..e933e05ad 100644
--- a/src/library/index_bundle_iterators/IntersectIterator.php
+++ b/src/library/index_bundle_iterators/IntersectIterator.php
@@ -397,22 +397,8 @@ class IntersectIterator extends IndexBundleIterator
         }
         array_push($covers, [$l[0],$r[0]]);
         $score = 0;
-        if ($is_doc) {
-            $weight = C\TITLE_WEIGHT;
-            $cover = array_shift($covers);
-            while(isset($cover[1]) && $cover[1] < C\AD_HOC_TITLE_LENGTH) {
-                $score += ($weight/($cover[1] - $cover[0] + 1));
-                $cover = array_shift($covers);
-            }
-            $weight = C\DESCRIPTION_WEIGHT;
-            foreach ($covers as $cover){
-                $score += ($weight/($cover[1] - $cover[0] + 1));
-            }
-        } else {
-            $weight = C\LINK_WEIGHT;
-            foreach ($covers as $cover) {
-                $score += ($weight/($cover[1] - $cover[0] + 1));
-            }
+        foreach ($covers as $cover) {
+            $score += (1/($cover[1] - $cover[0] + 1));
         }
         return $score;
     }
diff --git a/src/library/index_bundle_iterators/WordIterator.php b/src/library/index_bundle_iterators/WordIterator.php
index b8da49611..b37e72a3d 100644
--- a/src/library/index_bundle_iterators/WordIterator.php
+++ b/src/library/index_bundle_iterators/WordIterator.php
@@ -487,7 +487,7 @@ class WordIterator extends IndexBundleIterator
                 if(L\IndexDocumentBundle::isAHostDocId($doc_key)) {
                     $posting[self::DOC_RANK] +=
                         (L\IndexDocumentBundle::isACldDocId($doc_key)) ?
-                        2 : 0.5;
+                        C\CLD_URL_BONUS : C\HOST_URL_BONUS;
                 }
             }
             list($posting['TITLE_LENGTH'], $num_description_scores) =
@@ -495,13 +495,18 @@ class WordIterator extends IndexBundleIterator
             $posting[self::DESCRIPTION_SCORES] = array_slice($doc_info, 0,
                 $num_description_scores);
             if ($posting['FREQUENCY'] > 0) {
-                $frequency = $this->frequencyNormalization(
+                list($frequency, $appearance_index) =
+                    $this->frequencyNormalizationFirstAppearance(
                     $posting[self::DOC_LEN],
                     $posting[self::POSITION_LIST],
                     $posting[self::DESCRIPTION_SCORES]);
                 $posting[self::RELEVANCE] =
                     (log(1 + $occurrences_per_doc, 2) + $frequency *
                     log(1 + 1/$occurrences_per_doc, 2))/ ($frequency + 1);
+                if ($appearance_index == 0) {
+                    $posting[self::RELEVANCE] +=
+                        floatval(C\HOST_KEYWORD_BONUS);
+                }
             } else {
                  $posting[self::RELEVANCE] = 1;
             }
@@ -521,46 +526,55 @@ class WordIterator extends IndexBundleIterator
      * Normalizes the frequencies of a term within a document with respect to
      * the length of the document, the positions of the term with the document
      * and the overall importance score for a given position within the document
+     * also computes the index of the description score of the first appearance
+     * of the term. If this is 0 it means that the term appeared in the host
+     * name.
      *
      * @param int $num_words number of terms in the document
      * @param array $positions positions of this iterators term in the document
      * @param array $descriptions_scores boundaries and scores of different
      *  regions with document
-     * @return float normalized frequency
+     * @return array [normalized frequency, index of description score first
+     *      appear at]
      */
-    public function frequencyNormalization($num_words, $positions,
-        $descriptions_scores)
+    public function frequencyNormalizationFirstAppearance($num_words,
+        $positions, $descriptions_scores)
     {
         $num_words = max($num_words, 1);
-        $square_num = $num_words * $num_words;
-        $normalization_factor = log(1 + C\MAX_DESCRIPTION_LEN/(8 * $num_words),
-            2);
-        $description_index = 0;
+        $length_normalization = floatval(C\MAX_DESCRIPTION_LEN) /
+            floatval($num_words);
+        $first_index = 0;
         $old_pos = 0;
         if (empty($descriptions_scores)) {
             return count($positions);
         }
         $first_score = $descriptions_scores[0]['SCORE'] ?? 1;
-        $description_pos = $descriptions_scores[$description_index]['POS'];
         $num_scores = count($descriptions_scores);
-        $raw_freq_squared = 0;
         $weighted_frequency = 0;
+        $first_appearance_index = 0;
+        $first_flag = true;
         foreach ($positions as  $position) {
-            while ($description_pos < $position &&
-                $description_index < $num_scores) {
-                $old_pos = $description_pos;
-                $description_pos =
-                    $descriptions_scores[$description_index]['POS'];
-                $description_index++;
+            /* we assume positions sorted, so first index will always be larger
+               than last
+             */
+            $last_index = $num_scores - 1;
+            while ($first_index < $last_index) {
+                $mid_index = ceil(($first_index + $last_index)/2.0);
+                if ($descriptions_scores[$mid_index]['POS'] > $position) {
+                    $last_index = $mid_index - 1;
+                } else {
+                    $first_index = $mid_index;
+                }
+            }
+            if ($first_flag) {
+                $first_appearance_index = $first_index;
+                $first_flag = 0;
             }
-            $weight = $descriptions_scores[
-                max($description_index - 1, 0)]['SCORE'];
-            $sentence_length = max($description_pos - $old_pos, 1);
+            $weight = $descriptions_scores[$first_index]['SCORE'];
             $weighted_frequency += $weight;
         }
-        $frequency = 2 * $weighted_frequency *
-            $normalization_factor / max($first_score, 1);
-        return $frequency;
+        $frequency = $weighted_frequency * $length_normalization;
+        return [$frequency, $first_appearance_index];
     }
     /**
      * Updates the seen_docs count during an advance() call
diff --git a/src/locale/ar/configure.ini b/src/locale/ar/configure.ini
index bd8a9731c..a12a65f32 100755
--- a/src/locale/ar/configure.ini
+++ b/src/locale/ar/configure.ini
@@ -1386,9 +1386,9 @@ pageoptions_element_in_link = "Inlinks"
 pageoptions_element_ip_link = "عنوان IP"
 pageoptions_element_result_score = "نتيجة النتيجة"
 pageoptions_element_ranking_factors = "البحث ترتيب العوامل"
-pageoptions_element_title_weight = "لقب الوزن:"
-pageoptions_element_description_weight = "وصف الوزن:"
-pageoptions_element_link_weight = "ربط الوزن:"
+pageoptions_element_host_keyword_bonus = "مكافأة استضافة الكلمات الرئيسية :"
+pageoptions_element_cld_url_bonus = "مكافأة رابط نطاق الشركة :"
+pageoptions_element_host_url_bonus = "مكافأة عنوان المضيف :"
 pageoptions_element_results_grouping_options = "تجميع نتائج البحث"
 pageoptions_element_min_results_to_group = "نتائج الحد الأدنى للمجموعة:"
 pageoptions_element_test_page = "صفحة اختبار"
diff --git a/src/locale/bn/configure.ini b/src/locale/bn/configure.ini
index d89e63557..7e6813791 100755
--- a/src/locale/bn/configure.ini
+++ b/src/locale/bn/configure.ini
@@ -1386,9 +1386,9 @@ pageoptions_element_in_link = "Inlinks"
 pageoptions_element_ip_link = "আইপি ঠিকানা"
 pageoptions_element_result_score = "ফলে স্কোর"
 pageoptions_element_ranking_factors = "সার্চ র্যাংকিং কারণের"
-pageoptions_element_title_weight = "শিরোনাম ওজন:"
-pageoptions_element_description_weight = "বিবরণ: ওজন:"
-pageoptions_element_link_weight = "লিঙ্ক ওজন:"
+pageoptions_element_host_keyword_bonus = "হোস্ট কীওয়ার্ড বোনাস:"
+pageoptions_element_cld_url_bonus = "কোম্পানির ডোমেন ইউআরএল বোনাস:"
+pageoptions_element_host_url_bonus = "হোস্ট ইউআরএল বোনাস:"
 pageoptions_element_results_grouping_options = "অনুসন্ধান ফলাফল জোট"
 pageoptions_element_min_results_to_group = "সর্বনিম্ন ফলাফল গ্রুপ:"
 pageoptions_element_test_page = "পরীক্ষা পৃষ্ঠা"
diff --git a/src/locale/de/configure.ini b/src/locale/de/configure.ini
index ea3b0a6f3..09080a7dd 100755
--- a/src/locale/de/configure.ini
+++ b/src/locale/de/configure.ini
@@ -1386,9 +1386,9 @@ pageoptions_element_in_link = "Inlinks"
 pageoptions_element_ip_link = "Die IP-Adresse"
 pageoptions_element_result_score = "Ergebnis Punktzahl"
 pageoptions_element_ranking_factors = "Suche Ranking-Faktoren"
-pageoptions_element_title_weight = "Titel Gewicht:"
-pageoptions_element_description_weight = "Beschreibung Gewicht:"
-pageoptions_element_link_weight = "Link Gewicht:"
+pageoptions_element_host_keyword_bonus = "Schlüsselwortbonus für Gastgeber :"
+pageoptions_element_cld_url_bonus = "Firmen-Domain-URL-Bonus:"
+pageoptions_element_host_url_bonus = "Host-URL-Prämie:"
 pageoptions_element_results_grouping_options = "Suchergebnisse Gruppierung"
 pageoptions_element_min_results_to_group = "Minimale Ergebnisse Gruppe:"
 pageoptions_element_test_page = "Test Seite"
diff --git a/src/locale/el_GR/configure.ini b/src/locale/el_GR/configure.ini
index 4f55b93f2..2f2ff58bb 100644
--- a/src/locale/el_GR/configure.ini
+++ b/src/locale/el_GR/configure.ini
@@ -1386,9 +1386,9 @@ pageoptions_element_in_link = "Εσωτερικοί σύνδεσμοι"
 pageoptions_element_ip_link = "Διεύθυνση IP"
 pageoptions_element_result_score = "Βαθμολογία Αποτελεσμάτων"
 pageoptions_element_ranking_factors = "Παράγοντες κατάταξης αναζήτησης"
-pageoptions_element_title_weight = "Βάρος τίτλου:"
-pageoptions_element_description_weight = "Περιγραφή Βάρος:"
-pageoptions_element_link_weight = "Βάρος συνδέσμου:"
+pageoptions_element_host_keyword_bonus = "Μπόνους Λέξεων-Κλειδιών Υποδοχής :"
+pageoptions_element_cld_url_bonus = "Μπόνους Διεύθυνσης URL Τομέα Εταιρείας :"
+pageoptions_element_host_url_bonus = "Μπόνους URL Υποδοχής :"
 pageoptions_element_results_grouping_options = "Ομαδοποίηση αποτελεσμάτων αναζήτησης"
 pageoptions_element_min_results_to_group = "Ελάχιστα αποτελέσματα στην ομάδα:"
 pageoptions_element_test_page = "Δοκιμαστική σελίδα"
diff --git a/src/locale/en_US/configure.ini b/src/locale/en_US/configure.ini
index c12757d4a..821846434 100644
--- a/src/locale/en_US/configure.ini
+++ b/src/locale/en_US/configure.ini
@@ -1386,9 +1386,9 @@ pageoptions_element_in_link = "Inlinks"
 pageoptions_element_ip_link = "IP Address"
 pageoptions_element_result_score = "Result Score"
 pageoptions_element_ranking_factors = "Search Ranking Factors"
-pageoptions_element_title_weight = "Title Weight:"
-pageoptions_element_description_weight = "Description Weight:"
-pageoptions_element_link_weight = "Link Weight:"
+pageoptions_element_host_keyword_bonus = "Host Keyword Bonus:"
+pageoptions_element_cld_url_bonus = "Company Domain Url Bonus:"
+pageoptions_element_host_url_bonus = "Host Url Bonus:"
 pageoptions_element_results_grouping_options = "Search Results Grouping"
 pageoptions_element_min_results_to_group = "Minimum Results to Group:"
 pageoptions_element_test_page = "Test Page"
diff --git a/src/locale/es/configure.ini b/src/locale/es/configure.ini
index f8b5696a9..857ac68d8 100755
--- a/src/locale/es/configure.ini
+++ b/src/locale/es/configure.ini
@@ -1386,9 +1386,9 @@ pageoptions_element_in_link = "Inlinks"
 pageoptions_element_ip_link = "Direcci&oacute;n IP"
 pageoptions_element_result_score = "Resultado De La Puntuaci&oacute;n"
 pageoptions_element_ranking_factors = "La Clasificaci&oacute;n De La B&uacute;squeda De Los Factores De"
-pageoptions_element_title_weight = "T&iacute;tulo De Peso:"
-pageoptions_element_description_weight = "Descripci&oacute;n Peso:"
-pageoptions_element_link_weight = "Enlace De Peso:"
+pageoptions_element_host_keyword_bonus = "Bonificación por palabra clave de anfitrión:"
+pageoptions_element_cld_url_bonus = "Bonificación de Url de Dominio de Empresa:"
+pageoptions_element_host_url_bonus = "Bonificación de URL de Host:"
 pageoptions_element_results_grouping_options = "Resultados De La B&uacute;squeda De La Agrupaci&oacute;n"
 pageoptions_element_min_results_to_group = "Resultados m&iacute;nimos para el Grupo:"
 pageoptions_element_test_page = "P&aacute;gina De Prueba"
diff --git a/src/locale/fa/configure.ini b/src/locale/fa/configure.ini
index a09092478..5a0ac797a 100755
--- a/src/locale/fa/configure.ini
+++ b/src/locale/fa/configure.ini
@@ -1386,9 +1386,9 @@ pageoptions_element_in_link = "لینک&zwnj;های داخلی"
 pageoptions_element_ip_link = "آدرس IP"
 pageoptions_element_result_score = "نتیجه نمره"
 pageoptions_element_ranking_factors = "جستجو رتبه بندی عوامل"
-pageoptions_element_title_weight = "وزن عنوان:"
-pageoptions_element_description_weight = "وزن توضیحات:"
-pageoptions_element_link_weight = "وزن پیوند:"
+pageoptions_element_host_keyword_bonus = "میزبان کلید واژه پاداش:"
+pageoptions_element_cld_url_bonus = "پاداش دامنه شرکت :"
+pageoptions_element_host_url_bonus = "پاداش نشانی وب میزبان :"
 pageoptions_element_results_grouping_options = "دسته&zwnj;بندی نتایج جستجو"
 pageoptions_element_min_results_to_group = "حداقل تعداد هر دسته:"
 pageoptions_element_test_page = "تست صفحه"
diff --git a/src/locale/fr_FR/configure.ini b/src/locale/fr_FR/configure.ini
index 1691d7f4b..2f41b84ad 100755
--- a/src/locale/fr_FR/configure.ini
+++ b/src/locale/fr_FR/configure.ini
@@ -1386,9 +1386,9 @@ pageoptions_element_in_link = "Liens entrants"
 pageoptions_element_ip_link = "Adresse IP"
 pageoptions_element_result_score = "R&eacute;sultat Score"
 pageoptions_element_ranking_factors = "La recherche des facteurs de classement"
-pageoptions_element_title_weight = "Le titre poids:"
-pageoptions_element_description_weight = "Description poids:"
-pageoptions_element_link_weight = "Poids de lien:"
+pageoptions_element_host_keyword_bonus = "Bonus de mot-clé hôte:"
+pageoptions_element_cld_url_bonus = "Bonus d&#039;URL de domaine d&#039;entreprise:"
+pageoptions_element_host_url_bonus = "Bonus d&#039;URL d&#039;hôte:"
 pageoptions_element_results_grouping_options = "R&eacute;sultats de la recherche groupement"
 pageoptions_element_min_results_to_group = "Minimum de r&eacute;sultats &agrave; un groupe:"
 pageoptions_element_test_page = "Page de test"
diff --git a/src/locale/he/configure.ini b/src/locale/he/configure.ini
index f9d709e12..d0929c3a6 100755
--- a/src/locale/he/configure.ini
+++ b/src/locale/he/configure.ini
@@ -1386,9 +1386,9 @@ pageoptions_element_in_link = "קישורים נכנסים"
 pageoptions_element_ip_link = "כתובת ה-IP"
 pageoptions_element_result_score = "התוצאה ציון"
 pageoptions_element_ranking_factors = "חיפוש גורמי דירוג"
-pageoptions_element_title_weight = "כותרת משקל:"
-pageoptions_element_description_weight = "תיאור משקל:"
-pageoptions_element_link_weight = "קישור משקל:"
+pageoptions_element_host_keyword_bonus = "בונוס מילות מפתח מארח:"
+pageoptions_element_cld_url_bonus = "בונוס כתובת אתר של תחום החברה :"
+pageoptions_element_host_url_bonus = "בונוס כתובת אתר מארח :"
 pageoptions_element_results_grouping_options = "תוצאות חיפוש קיבוץ"
 pageoptions_element_min_results_to_group = "מינימום תוצאות הקבוצה:"
 pageoptions_element_test_page = "דף בדיקה"
diff --git a/src/locale/hi/configure.ini b/src/locale/hi/configure.ini
index fc90d5893..f618f0de0 100755
--- a/src/locale/hi/configure.ini
+++ b/src/locale/hi/configure.ini
@@ -1386,9 +1386,9 @@ pageoptions_element_in_link = "Inlinks"
 pageoptions_element_ip_link = "आईपी पते"
 pageoptions_element_result_score = "परिणाम स्कोर"
 pageoptions_element_ranking_factors = "खोज रैंकिंग कारकों"
-pageoptions_element_title_weight = "शीर्षक वजन:"
-pageoptions_element_description_weight = "विवरण वजन:"
-pageoptions_element_link_weight = "लिंक वजन:"
+pageoptions_element_host_keyword_bonus = "होस्ट कीवर्ड बोनस:"
+pageoptions_element_cld_url_bonus = "कंपनी डोमेन यूआरएल बोनस:"
+pageoptions_element_host_url_bonus = "होस्ट यूआरएल बोनस:"
 pageoptions_element_results_grouping_options = "खोज परिणाम समूहीकरण"
 pageoptions_element_min_results_to_group = "न्यूनतम परिणाम समूह के लिए:"
 pageoptions_element_test_page = "परीक्षण पृष्ठ"
diff --git a/src/locale/id/configure.ini b/src/locale/id/configure.ini
index b153c3208..28f7c84b5 100755
--- a/src/locale/id/configure.ini
+++ b/src/locale/id/configure.ini
@@ -1386,9 +1386,9 @@ pageoptions_element_in_link = "Inlinks"
 pageoptions_element_ip_link = "Alamat IP"
 pageoptions_element_result_score = "Hasil Skor"
 pageoptions_element_ranking_factors = "Pencarian Peringkat Faktor-Faktor"
-pageoptions_element_title_weight = "Judul Berat Badan:"
-pageoptions_element_description_weight = "Keterangan Berat Badan:"
-pageoptions_element_link_weight = "Link Berat Badan:"
+pageoptions_element_host_keyword_bonus = "Bonus Kata Kunci Host:"
+pageoptions_element_cld_url_bonus = "Bonus Url Domain Perusahaan:"
+pageoptions_element_host_url_bonus = "Bonus URL Tuan Rumah:"
 pageoptions_element_results_grouping_options = "Hasil Pencarian Pengelompokan"
 pageoptions_element_min_results_to_group = "Minimal Hasil untuk Kelompok:"
 pageoptions_element_test_page = "Uji Halaman"
diff --git a/src/locale/it/configure.ini b/src/locale/it/configure.ini
index bc90a4041..750fc9507 100755
--- a/src/locale/it/configure.ini
+++ b/src/locale/it/configure.ini
@@ -1386,9 +1386,9 @@ pageoptions_element_in_link = "Inlink"
 pageoptions_element_ip_link = "Indirizzo IP"
 pageoptions_element_result_score = "Risultato Punteggio"
 pageoptions_element_ranking_factors = "Fattori del posto"
-pageoptions_element_title_weight = "Peso Titolo:"
-pageoptions_element_description_weight = "Peso Descrizione:"
-pageoptions_element_link_weight = "Peso Link:"
+pageoptions_element_host_keyword_bonus = "Bonus parole chiave host:"
+pageoptions_element_cld_url_bonus = "Bonus Url dominio azienda:"
+pageoptions_element_host_url_bonus = "Bonus Url host:"
 pageoptions_element_results_grouping_options = "Raggruppa risultati di ricerca"
 pageoptions_element_min_results_to_group = "Minimo risultati da raggruppare:"
 pageoptions_element_test_page = "Pagina Di Prova"
diff --git a/src/locale/ja/configure.ini b/src/locale/ja/configure.ini
index 3a62f591d..43eede052 100755
--- a/src/locale/ja/configure.ini
+++ b/src/locale/ja/configure.ini
@@ -1386,9 +1386,9 @@ pageoptions_element_in_link = "Inlinks"
 pageoptions_element_ip_link = "IPアドレス"
 pageoptions_element_result_score = "スコア結果"
 pageoptions_element_ranking_factors = "検索ランキング因子"
-pageoptions_element_title_weight = "タイトル重さ:"
-pageoptions_element_description_weight = "容量:"
-pageoptions_element_link_weight = "リンク重量:"
+pageoptions_element_host_keyword_bonus = "ホストキーワードボーナス:"
+pageoptions_element_cld_url_bonus = "企業ドメインUrlボーナス:"
+pageoptions_element_host_url_bonus = "ホストUrlボーナス:"
 pageoptions_element_results_grouping_options = "検索結果の分類"
 pageoptions_element_min_results_to_group = "最低限の結果をグループ"
 pageoptions_element_test_page = "テストページ"
diff --git a/src/locale/kn/configure.ini b/src/locale/kn/configure.ini
index a522a3783..9b0264d04 100755
--- a/src/locale/kn/configure.ini
+++ b/src/locale/kn/configure.ini
@@ -1386,9 +1386,9 @@ pageoptions_element_in_link = "Inlinks"
 pageoptions_element_ip_link = "IP ವಿಳಾಸ"
 pageoptions_element_result_score = "ಪರಿಣಾಮವಾಗಿ ಸ್ಕೋರ್"
 pageoptions_element_ranking_factors = "ಹುಡುಕು ಶ್ರೇಯಾಂಕ ಅಂಶಗಳು"
-pageoptions_element_title_weight = "ಶೀರ್ಷಿಕೆ ತೂಕ:"
-pageoptions_element_description_weight = "ವಿವರಣೆ ತೂಕ:"
-pageoptions_element_link_weight = "ಲಿಂಕ್ ತೂಕ:"
+pageoptions_element_host_keyword_bonus = "ಹೋಸ್ಟ್ ಕೀವರ್ಡ್ ಬೋನಸ್:"
+pageoptions_element_cld_url_bonus = "ಕಂಪನಿ ಡೊಮೇನ್ ಯುಆರ್ಎಲ್ ಬೋನಸ್:"
+pageoptions_element_host_url_bonus = "ಹೋಸ್ಟ್ ಯುಆರ್ಎಲ್ ಬೋನಸ್:"
 pageoptions_element_results_grouping_options = "ಹುಡುಕಾಟ ಫಲಿತಾಂಶಗಳು ಗುಂಪು"
 pageoptions_element_min_results_to_group = "ಕನಿಷ್ಠ ಫಲಿತಾಂಶಗಳು ಗುಂಪು:"
 pageoptions_element_test_page = "ಟೆಸ್ಟ್ ಪುಟ"
diff --git a/src/locale/ko/configure.ini b/src/locale/ko/configure.ini
index dafd29b04..3cba4b204 100755
--- a/src/locale/ko/configure.ini
+++ b/src/locale/ko/configure.ini
@@ -1386,9 +1386,9 @@ pageoptions_element_in_link = "Inlinks"
 pageoptions_element_ip_link = "IP 주소"
 pageoptions_element_result_score = "그 결과 점수"
 pageoptions_element_ranking_factors = "검색 순위 요소"
-pageoptions_element_title_weight = "제목량:"
-pageoptions_element_description_weight = "무게 설명:"
-pageoptions_element_link_weight = "링크 무게:"
+pageoptions_element_host_keyword_bonus = "호스트 키워드 보너스:"
+pageoptions_element_cld_url_bonus = "회사 도메인 주소 보너스:"
+pageoptions_element_host_url_bonus = "호스트 주소 보너스:"
 pageoptions_element_results_grouping_options = "검색 결과 그룹"
 pageoptions_element_min_results_to_group = "최소 결과하는 그룹:"
 pageoptions_element_test_page = "테스트 페이지"
diff --git a/src/locale/nl/configure.ini b/src/locale/nl/configure.ini
index 1e84ecc96..5b8c4b5de 100644
--- a/src/locale/nl/configure.ini
+++ b/src/locale/nl/configure.ini
@@ -1386,9 +1386,9 @@ pageoptions_element_in_link = "inlinks"
 pageoptions_element_ip_link = "IP adres"
 pageoptions_element_result_score = "Resultaat Score"
 pageoptions_element_ranking_factors = "Zoek Ranking Factors"
-pageoptions_element_title_weight = "Titel Gewicht:"
-pageoptions_element_description_weight = "Beschrijving Gewicht:"
-pageoptions_element_link_weight = "Link Gewicht:"
+pageoptions_element_host_keyword_bonus = "Host Keyword Bonus :"
+pageoptions_element_cld_url_bonus = "Bedrijfsdomein Url-Bonus :"
+pageoptions_element_host_url_bonus = "Host Url Bonus :"
 pageoptions_element_results_grouping_options = "Zoekresultaten Groepering"
 pageoptions_element_min_results_to_group = "Minimum Resultaten Groep:"
 pageoptions_element_test_page = "testpagina"
diff --git a/src/locale/pl/configure.ini b/src/locale/pl/configure.ini
index eced982ef..14d82f2ea 100755
--- a/src/locale/pl/configure.ini
+++ b/src/locale/pl/configure.ini
@@ -1386,9 +1386,9 @@ pageoptions_element_in_link = "Życiu"
 pageoptions_element_ip_link = "Adres IP"
 pageoptions_element_result_score = "Wynik Wynik "
 pageoptions_element_ranking_factors = "Czynniki Rankingu Wyszukiwania "
-pageoptions_element_title_weight = "Waga Nazwa:"
-pageoptions_element_description_weight = "Opis Wagi:"
-pageoptions_element_link_weight = "Waga Link:"
+pageoptions_element_host_keyword_bonus = "Host Keyword Bonus:"
+pageoptions_element_cld_url_bonus = "Bonus URL Domeny Firmowej :"
+pageoptions_element_host_url_bonus = "Bonus URL Hosta:"
 pageoptions_element_results_grouping_options = "Wyniki Wyszukiwania Grupowanie"
 pageoptions_element_min_results_to_group = "Minimalne wyniki w grupie:"
 pageoptions_element_test_page = "Strona Testowa "
diff --git a/src/locale/pt/configure.ini b/src/locale/pt/configure.ini
index a2d487bd1..6d2ebbceb 100755
--- a/src/locale/pt/configure.ini
+++ b/src/locale/pt/configure.ini
@@ -1386,9 +1386,9 @@ pageoptions_element_in_link = "Inlinks"
 pageoptions_element_ip_link = "Endere&ccedil;o IP"
 pageoptions_element_result_score = "Resultado Da Pontua&ccedil;&atilde;o"
 pageoptions_element_ranking_factors = "Pesquisa De Fatores De Ranking"
-pageoptions_element_title_weight = "T&iacute;tulo De Peso:"
-pageoptions_element_description_weight = "Descri&ccedil;&atilde;o Peso:"
-pageoptions_element_link_weight = "Peso Link:"
+pageoptions_element_host_keyword_bonus = "Bônus De Palavra-Chave Do Host:"
+pageoptions_element_cld_url_bonus = "Bônus De Url De Domínio Da Empresa:"
+pageoptions_element_host_url_bonus = "Bônus De URL Do Host :"
 pageoptions_element_results_grouping_options = "Resultados Da Pesquisa De Agrupamento"
 pageoptions_element_min_results_to_group = "Resultados m&iacute;nimos para o Grupo:"
 pageoptions_element_test_page = "P&aacute;gina De Teste"
diff --git a/src/locale/ru/configure.ini b/src/locale/ru/configure.ini
index 5c2cdd78d..11d83aef9 100755
--- a/src/locale/ru/configure.ini
+++ b/src/locale/ru/configure.ini
@@ -1386,9 +1386,9 @@ pageoptions_element_in_link = "Inlinks"
 pageoptions_element_ip_link = "IP-адрес"
 pageoptions_element_result_score = "Результат Результат "
 pageoptions_element_ranking_factors = "Факторы Ранжирования Поиска "
-pageoptions_element_title_weight = "Вес Название:"
-pageoptions_element_description_weight = "Описание Вес:"
-pageoptions_element_link_weight = "Вес Ссылке:"
+pageoptions_element_host_keyword_bonus = "Бонус за ключевое слово хоста:"
+pageoptions_element_cld_url_bonus = "Бонусный URL-адрес домена компании:"
+pageoptions_element_host_url_bonus = "Бонусный URL-адрес хоста:"
 pageoptions_element_results_grouping_options = "Результаты Поиска Группировка"
 pageoptions_element_min_results_to_group = "Минимальные результаты в группе:"
 pageoptions_element_test_page = "Тестовая Страница "
diff --git a/src/locale/te/configure.ini b/src/locale/te/configure.ini
index d96e6744d..ebe05c834 100644
--- a/src/locale/te/configure.ini
+++ b/src/locale/te/configure.ini
@@ -1386,9 +1386,9 @@ pageoptions_element_in_link = "ఇన్ లింక్స్"
 pageoptions_element_ip_link = "IP అడ్రస్"
 pageoptions_element_result_score = "ఫలితంగా స్కోరు"
 pageoptions_element_ranking_factors = "శోధన ర్యాంకింగ్ కారకాలు"
-pageoptions_element_title_weight = "శీర్షిక బరువు:"
-pageoptions_element_description_weight = "వివరణ బరువు:"
-pageoptions_element_link_weight = "లింక్ బరువు:"
+pageoptions_element_host_keyword_bonus = "హోస్ట్ కీవర్డ్ బోనస్:"
+pageoptions_element_cld_url_bonus = "కంపెనీ డొమైన్ యూఆర్ఎల్ బోనస్:"
+pageoptions_element_host_url_bonus = "హోస్ట్ యూఆర్ఎల్ బోనస్:"
 pageoptions_element_results_grouping_options = "శోధన ఫలితాలు చోట"
 pageoptions_element_min_results_to_group = "కనీస ఫలితాలు గుంపు:"
 pageoptions_element_test_page = "టెస్ట్ పేజీ"
diff --git a/src/locale/th/configure.ini b/src/locale/th/configure.ini
index 4144a85b2..78341b5bd 100755
--- a/src/locale/th/configure.ini
+++ b/src/locale/th/configure.ini
@@ -1386,9 +1386,9 @@ pageoptions_element_in_link = "Inlinks"
 pageoptions_element_ip_link = "ที่อยู่ IP"
 pageoptions_element_result_score = "ผลคะแนน"
 pageoptions_element_ranking_factors = "การค้นหาปัจจัยระดับสูงนอก"
-pageoptions_element_title_weight = "หัวเรื่องน้ำหนัก:"
-pageoptions_element_description_weight = "รายละเอียดน้ำหนัก:"
-pageoptions_element_link_weight = "เชื่อมโยงน้ำหนัก:"
+pageoptions_element_host_keyword_bonus = "โบนัสคำหลักโฮสต์:"
+pageoptions_element_cld_url_bonus = "โบนัสโดเมนบริษัท:"
+pageoptions_element_host_url_bonus = "โบนัสโฮสต์:"
 pageoptions_element_results_grouping_options = "ผลการค้นหาการจัดกลุ่ม"
 pageoptions_element_min_results_to_group = "อย่างน้อยผลให้กลุ่ม:"
 pageoptions_element_test_page = "ทดสอบหน้า"
diff --git a/src/locale/tl/configure.ini b/src/locale/tl/configure.ini
index aea9b1e4a..2fe90febc 100644
--- a/src/locale/tl/configure.ini
+++ b/src/locale/tl/configure.ini
@@ -1386,9 +1386,9 @@ pageoptions_element_in_link = "Inlinks"
 pageoptions_element_ip_link = "IP Address"
 pageoptions_element_result_score = "Resulta Puntos"
 pageoptions_element_ranking_factors = "Maghanap Ng Pagra-Ranggo Ng Mga Kadahilanan"
-pageoptions_element_title_weight = "Pamagat Ng Timbang:"
-pageoptions_element_description_weight = "Paglalarawan Ng Timbang:"
-pageoptions_element_link_weight = "Link Timbang:"
+pageoptions_element_host_keyword_bonus = "Mag-Host Ng Keyword Bonus:"
+pageoptions_element_cld_url_bonus = "Bonus Ng Url Ng Domain Ng Kumpanya:"
+pageoptions_element_host_url_bonus = "Host Url Bonus:"
 pageoptions_element_results_grouping_options = "Mga Resulta Ng Paghahanap Ng Pagpapangkat"
 pageoptions_element_min_results_to_group = "Minimum na mga Resulta sa Grupo:"
 pageoptions_element_test_page = "Pahina Ng Pagsubok"
diff --git a/src/locale/tr/configure.ini b/src/locale/tr/configure.ini
index a031d4513..35f7e6ce3 100755
--- a/src/locale/tr/configure.ini
+++ b/src/locale/tr/configure.ini
@@ -1386,9 +1386,9 @@ pageoptions_element_in_link = "İ&ccedil; bağlantıları kullanmak"
 pageoptions_element_ip_link = "IP Adresi"
 pageoptions_element_result_score = "Sonu&ccedil; Puan"
 pageoptions_element_ranking_factors = "Arama Sıralaması Fakt&ouml;rler"
-pageoptions_element_title_weight = "Başlık Ağırlık:"
-pageoptions_element_description_weight = "A&ccedil;ıklama Ağırlık:"
-pageoptions_element_link_weight = "Bağlantı Ağırlık:"
+pageoptions_element_host_keyword_bonus = "Ana Anahtar Kelime Bonusu :"
+pageoptions_element_cld_url_bonus = "Şirket Alan Adı Url Bonusu :"
+pageoptions_element_host_url_bonus = "Ana Bilgisayar Url Bonusu :"
 pageoptions_element_results_grouping_options = "Arama Sonu&ccedil;ları Gruplandırma"
 pageoptions_element_min_results_to_group = "Minimum Sonu&ccedil;lar Grup i&ccedil;in:"
 pageoptions_element_test_page = "Test Sayfası"
diff --git a/src/locale/vi_VN/configure.ini b/src/locale/vi_VN/configure.ini
index 55f0baae2..0c257af60 100755
--- a/src/locale/vi_VN/configure.ini
+++ b/src/locale/vi_VN/configure.ini
@@ -1386,9 +1386,9 @@ pageoptions_element_in_link = "Inlinks"
 pageoptions_element_ip_link = "Địa chỉ IP"
 pageoptions_element_result_score = "Quả Điểm"
 pageoptions_element_ranking_factors = "Tìm Bảng Xếp Hạng Các Yếu Tố"
-pageoptions_element_title_weight = "Tiêu Đề Cân:"
-pageoptions_element_description_weight = "Mô Tả Cân:"
-pageoptions_element_link_weight = "Liên Kết Cân:"
+pageoptions_element_host_keyword_bonus = "Máy Chủ Từ Khóa Thưởng:"
+pageoptions_element_cld_url_bonus = "Công Ty Miền Url Thưởng:"
+pageoptions_element_host_url_bonus = "Chủ Url Thưởng:"
 pageoptions_element_results_grouping_options = "Kết Quả Tìm Kiếm Nhóm"
 pageoptions_element_min_results_to_group = "Kết Quả tối thiểu để Nhóm:"
 pageoptions_element_test_page = "Kiểm Tra Trang"
diff --git a/src/locale/vi_VN/statistics.txt b/src/locale/vi_VN/statistics.txt
index 5a165df53..b6bef56f0 100755
--- a/src/locale/vi_VN/statistics.txt
+++ b/src/locale/vi_VN/statistics.txt
@@ -1 +1 @@
-d:100;
\ No newline at end of file
+d:99;
\ No newline at end of file
diff --git a/src/locale/zh_CN/configure.ini b/src/locale/zh_CN/configure.ini
index 9d9e20669..40067c900 100755
--- a/src/locale/zh_CN/configure.ini
+++ b/src/locale/zh_CN/configure.ini
@@ -1386,9 +1386,9 @@ pageoptions_element_in_link = "Inlinks"
 pageoptions_element_ip_link = "IP地址"
 pageoptions_element_result_score = "结果得分"
 pageoptions_element_ranking_factors = "搜索排的因素"
-pageoptions_element_title_weight = "标题重量:"
-pageoptions_element_description_weight = "说明重量:"
-pageoptions_element_link_weight = "链路重量:"
+pageoptions_element_host_keyword_bonus = "主机关键字奖励:"
+pageoptions_element_cld_url_bonus = "公司域名Url奖金:"
+pageoptions_element_host_url_bonus = "主机Url奖金:"
 pageoptions_element_results_grouping_options = "搜索结果的分组"
 pageoptions_element_min_results_to_group = "最低结果,小组:"
 pageoptions_element_test_page = "测试页"
diff --git a/src/locale/zh_CN/statistics.txt b/src/locale/zh_CN/statistics.txt
index 5a165df53..b6bef56f0 100755
--- a/src/locale/zh_CN/statistics.txt
+++ b/src/locale/zh_CN/statistics.txt
@@ -1 +1 @@
-d:100;
\ No newline at end of file
+d:99;
\ No newline at end of file
diff --git a/src/models/ProfileModel.php b/src/models/ProfileModel.php
index 173c9cb2a..81310fd9f 100755
--- a/src/models/ProfileModel.php
+++ b/src/models/ProfileModel.php
@@ -50,14 +50,14 @@ class ProfileModel extends Model
      */
     public $profile_fields = ['AD_LOCATION', 'API_ACCESS', 'AUTH_KEY',
         'AUTOLOGOUT', 'AUXILIARY_CSS', 'BACKGROUND_COLOR', 'BACKGROUND_IMAGE',
-        'CACHE_LINK', 'CAPTCHA_MODE', 'CONFIGURE_BOT', 'COOKIE_LIFETIME',
-        'CSRF_TOKEN', 'DEBUG_LEVEL', 'DEFAULT_CONTINUOUS_SCROLL',
-        'DESCRIPTION_WEIGHT', 'DB_HOST', 'DBMS', 'DB_NAME', 'DB_PASSWORD',
-        'DB_USER', 'DEFAULT_LOCALE', 'DIFFERENTIAL_PRIVACY',
+        'CACHE_LINK', 'CAPTCHA_MODE', 'CLD_URL_BONUS', 'CONFIGURE_BOT',
+        'COOKIE_LIFETIME', 'CSRF_TOKEN', 'DEBUG_LEVEL',
+        'DEFAULT_CONTINUOUS_SCROLL', 'DB_HOST', 'DBMS', 'DB_NAME',
+        'DB_PASSWORD', 'DB_USER', 'DEFAULT_LOCALE', 'DIFFERENTIAL_PRIVACY',
         'FAVICON', 'FOREGROUND_COLOR', 'GLOBAL_ADSCRIPT', 'GROUP_ITEM',
-        'GROUP_ANALYTICS_MODE', 'IN_LINK', 'IP_LINK', 'LANDING_PAGE',
-        'LINK_WEIGHT', 'LOGO_SMALL', 'LOGO_MEDIUM', 'LOGO_LARGE',
-        'MAIL_PASSWORD',  'MAIL_SECURITY',
+        'GROUP_ANALYTICS_MODE', 'HOST_KEYWORD_BONUS', 'HOST_URL_BONUS',
+        'IN_LINK', 'IP_LINK', 'LANDING_PAGE', 'LOGO_SMALL', 'LOGO_MEDIUM',
+        'LOGO_LARGE', 'MAIL_PASSWORD',  'MAIL_SECURITY',
         'MAIL_SENDER', 'MAIL_SERVER', 'MAIL_SERVERPORT', 'MAIL_USERNAME',
         'MIN_RESULTS_TO_GROUP',  'MONETIZATION_TYPE', 'MORE_RESULT',
         'MEDIA_MODE', 'NAME_SERVER', 'PRIVATE_DB_NAME', 'PRIVATE_DB_HOST',
@@ -66,7 +66,7 @@ class ProfileModel extends Model
         'ROBOT_INSTANCE','RSS_ACCESS', 'SEARCH_ANALYTICS_MODE',
         'SEARCHBAR_PATH', 'SEND_MAIL_MEDIA_UPDATER',
         'SESSION_NAME', 'SIDE_ADSCRIPT', 'SIDEBAR_COLOR', 'SIGNIN_LINK',
-        'SIMILAR_LINK', 'SUBSEARCH_LINK', 'TIMEZONE', 'TITLE_WEIGHT',
+        'SIMILAR_LINK', 'SUBSEARCH_LINK', 'TIMEZONE',
         'TOPBAR_COLOR', 'TOP_ADSCRIPT','TOR_PROXY', 'USE_FILECACHE',
         'USE_MAIL_PHP', 'USE_PROXY', 'USER_AGENT_SHORT', 'WEB_URI',
         'WEB_ACCESS', 'WORD_CLOUD', 'WORD_SUGGEST'
diff --git a/src/views/elements/PageoptionsElement.php b/src/views/elements/PageoptionsElement.php
index e61d03ebf..86fa57ba0 100644
--- a/src/views/elements/PageoptionsElement.php
+++ b/src/views/elements/PageoptionsElement.php
@@ -517,22 +517,22 @@ class PageOptionsElement extends Element
         <h2><?= tl('pageoptions_element_ranking_factors')?>
         <?= $this->view->helper("helpbutton")->render(
             "Page Ranking Factors", $data[C\CSRF_TOKEN]) ?></h2>
-        <table class="weights-table" >
-        <tr><th><label for="title-weight"><?=
-            tl('pageoptions_element_title_weight') ?></label></th><td>
-            <input type="text" id="title-weight" class="very-narrow-field"
-                maxlength="<?= C\NUM_FIELD_LEN ?>" name="TITLE_WEIGHT"
-                value="<?= $data['TITLE_WEIGHT']  ?>" /></td></tr>
-        <tr><th><label for="description-weight"><?=
-            tl('pageoptions_element_description_weight')?></label></th><td>
-            <input type="text" id="description-weight" class="very-narrow-field"
-                maxlength="<?= C\NUM_FIELD_LEN ?>" name="DESCRIPTION_WEIGHT"
-                value="<?= $data['DESCRIPTION_WEIGHT'] ?>" /></td></tr>
-        <tr><th><label for="link-weight"><?=
-            tl('pageoptions_element_link_weight')?></label></th><td>
-            <input type="text" id="link-weight" class="very-narrow-field"
-                maxlength="<?= C\NUM_FIELD_LEN ?>" name="LINK_WEIGHT"
-                value="<?= $data['LINK_WEIGHT'] ?>" /></td></tr>
+        <table class="bonus-table" >
+        <tr><th><label for="host-keyword-bonus"><?=
+            tl('pageoptions_element_host_keyword_bonus') ?></label></th><td>
+            <input type="text" id="host-keyword-bonus" class="very-narrow-field"
+                maxlength="<?= C\NUM_FIELD_LEN ?>" name="HOST_KEYWORD_BONUS"
+                value="<?= $data['HOST_KEYWORD_BONUS']  ?>" /></td></tr>
+        <tr><th><label for="cld-url-bonus"><?=
+            tl('pageoptions_element_cld_url_bonus')?></label></th><td>
+            <input type="text" id="cld-url-bonus" class="very-narrow-field"
+                maxlength="<?= C\NUM_FIELD_LEN ?>" name="CLD_URL_BONUS"
+                value="<?= $data['CLD_URL_BONUS'] ?>" /></td></tr>
+        <tr><th><label for="host-url-bonus"><?=
+            tl('pageoptions_element_host_url_bonus')?></label></th><td>
+            <input type="text" id="host-url-bonus" class="very-narrow-field"
+                maxlength="<?= C\NUM_FIELD_LEN ?>" name="HOST_URL_BONUS"
+                value="<?= $data['HOST_URL_BONUS'] ?>" /></td></tr>
         </table>
         <h2><?= tl('pageoptions_element_results_grouping_options') ?>
         <?= $this->view->helper("helpbutton")->render(
ViewGit