我可以从 Solr 中提取命中计数值吗?根据命中数对其结果进行排序
您的标题主题是关于“命中数”,但是通过阅读您的文字,它会接缝,您对 solr 分数感兴趣 - 因为默认情况下 solr 按分数排序 - 这就是“命中数”的意思吗?
是否有从 Solr 中提取命中计数的既定方法?
是的,可以获得搜索文档的“分数”值(顺便说一下,也可以获得命中数)
要获得分数,只需将“字段列表”参数 (fl) 扩展为“分数”。
http://wiki.apache.org/solr/CommonQueryParameters#fl
例如,如果您有 DOCUMENT,ID,PTAH 字段 - 添加这样的分数:
http://localhost:8080/solr/select/?fl=DOCUMENT,ID ,PTAH,分数
示例:
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">5</int>
<lst name="params">
<str name="start">0</str>
<str name="fl">DOCUMENT,ID,PTAH,score</str>
</lst>
</lst>
//更新:
没有。发生次数
一个(关键字)词在索引中出现的频率是多少?在特定领域?所以方面搜索对你来说很重要:http ://wiki.apache.org/solr/SolrFacetingOverview
//更新2:
第二次更新 - 如果您想计算一个文档中的关键字数量以接收文档 ID 和该文档的单词数,您可以结合使用 facet search 和 facet range 查询范围。示例:查看制造商“dell”的所有文档并返回每个文档(ID)的此关键字的频率
ID -> "dell" exits how many times?
241 -> 2
242 -> 0
243 -> 5
为此,请使用以下搜索参数:
<str name="facet.field">YOUR_TEXTFIELD</str>
<str name="facet.range">ID</str> <--- ID=field woth the document ID
<str name="f.ID.facet.range.gap">1</str> <--- count ID in step of 1
<str name="f.ID.facet.range.start">0</str> <--- start ID for faceted search
<str name="q">dell</str> <---string, "keyword" to look/count for
<str name="f.ID.facet.range.end">1000</str> <--- end ID for faceted search
<str name="facet">true</str>
<str name="facet.method">enum</str>