我有關於應如何將結果從solr中排序的要求。在較高的水平,他們應該是這樣的:solr得分文檔,所有術語都是相同的,無論術語的頻率如何
- 上SUBSET2領域的精確匹配按日期排序在按日期排序SUBSET1領域
- 精確匹配
- 上SUBSET1領域部分匹配按日期排序
- 部分在SUBSET2場按日期排序的匹配
- 上SUBSET1領域的模糊匹配按日期排序按日期排序上SUBSET2領域
- 模糊匹配
目前我正在對solr評分和日期進行排序。當我查詢solr時,我正在使用一種提升功能,對舊文檔進行逆向提升,以使它們向下移動,並將新文檔「浮動」到頂部,同時提升相應的字段,以便獲得精確的,部分的和按照正確的順序進行模糊匹配。這使我獲得了大部分途徑。
現在是棘手的部分。要求規定,如果我搜索諸如「紅色卡車」之類的東西,那麼包含「紅色卡車」的文件,無論條款的頻率如何,都應該得到相同的評分。提升的新文檔到頂端並不會影響足夠的分數,從而將文檔的詞頻提高得足夠遠。
例如,讓我們說我有2個文件: DOC 1:
- 字段1:「紅色的福特卡車真的很紅,這是一個快速的卡車」
- 日期:1/1/2010
DOC 2:
- 字段1: 「紅色福特卡車停在路邊」
- 日期:2012/1/10
當我搜索「紅色福特卡車」我想文件2出現首先是因爲它是新的,並擁有所有的查詢條件。當前文檔1將首先出現,因爲它在Field1中有更多的匹配,反向提升不足以將其推下。
所以現在對於我的問題是在solr中有一個配置點來告訴它匹配查詢的條款恰好爲文檔一次?有點像T-SQL中的Exists。
如果有任何其他信息會有所幫助,請提前告知我,並感謝您的時間。
感謝您的回覆。 omitTerFreqAndPositions有點幫助,但我確實關心位置。正如我想要的東西只是「紅色福特卡車」被排序在「紅色福特卡車」之上。除非我誤解了「位置」部分,但這似乎是做的。 – Jared 2012-08-03 14:58:13
我明白了......你可以嘗試將omitNorms和omitTermFreqAndPositions組合成不同的形式,並與它們一起玩。我沒有意識到任何沒有職位的omitTermFreq,儘管我已經閱讀過關於它的討論。祝你好運! – javanna 2012-08-03 15:02:28
您能否指點我參加一些討論,看看我是否可以爲此問題制定策略? – Jared 2012-08-03 15:04:22