我正在使用Solr來索引文檔,現在我需要搜索這些文檔中的確切短語並按照該短語出現在文檔上的次數對結果進行排序。我還必須提供短語匹配回用戶的次數。搜索和匹配Solr的短語
我用下面的查詢(這裏我用這個詞SAP搜索):
{
:params => {
:wt => "json",
:indent => "on",
:rows => 100,
:start => 0,
:q => "((content:SAP) AND (doc_type:ClientContact) AND (environment:production))",
:sort => "termfreq(content,SAP) desc",
:fl => "id,termfreq(content,SAP)"
}
}
當然,這是對實際查詢的表示,即通過將這個散列成一個查詢字符串進行在運行時。
我設法通過使用content:"the query here"
而不是content:the query here
來實現搜索工作,但難度最大的部分是由termfreq
返回並排序。
關於如何使這項工作的任何想法?
Obs:我正在使用Ruby,但這是一個遺留應用程序,我不能使用任何RubyGems,我在這裏使用Solr的HTTP接口。
只是你應該考慮使用fq參數來處理非文本搜索字段(如doc_type和environment)。 fq參數不用於搜索的評分。 –
謝謝@dwhelan,我當然會。 – kolrie
您是否找到解決方案? – tasmaniski