我正在使用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