2017-10-10 70 views
0

我環顧四周尋找解決方案無濟於事,但我會想象有一種方法可以做到這一點。SOLR - 提高場地內場地比分的場地得分

我們已經有了30個字段左右的SOLR實現,每個字段都有相關的提升值。有些領域的權重相同 - 大多數具有不同的價值觀。

如果給定字段中的多個字詞與同等加權字段中的多個字詞匹配,我們希望提高文檔分數。

例如:搜索計算機程序設計

如果計算機編程出現在文檔的同一領域,我想這對得分較高,比如果「計算機」出現在一個領域,「規劃」出現在另一個。我們目前的配置對它們進行平分(假設這些字段的權重相同)。

我認爲這可能涉及使用短語slop和鄰近,但我希望有一種方式管理這種方式?

回答

0

如果給定搜索字符串出現在特定字段中,我們可以提高文檔的分數。

例子。文件有10個字段,其中之一是標題。比方說,如果搜索字符串「搜索計算機編程」出現在標題字段中,我們想提高doc的分數。在查詢你需要傳遞q=<searchstring> OR <field to boost>:(<searchstring>)^<boost factor>

example: 

http://Solrserver:solrport/solr/mycollection/select?q=(Searching for Computer Programming) OR (title:(Searching for Computer Programming)^5)&wt=json&indent=true&debugQuery=true 

關於鄰近搜索: 當你搜索「搜索計算機程序設計」,而不是搜索計算機程序設計,它被稱爲搜索短語。 Solr的將尋找精確短語匹配(這是包含在「)。鄰近搜索時Solr的外觀爲檢索詞,在給定的更爲接近對方。

Example: 
Normal search: Searching for Computer Programming 
Phrase search: "Searching for Computer Programming" 
Proximity search : "Searching for Computer Programming"~10 
+0

你可能已經避讓我到的東西 - 當我調試我們的查詢它打破了個人條款,即尋找「搜索」,「計算機」和「編程」平等分配所有領域,然後合併分數。我最初並沒有設置 - 也許有什麼我需要調整呢? – Topcat