我正在使用solr按名称搜索一组数据(例如"Dan“或"Joe Smith")。我希望以另一个索引字段double_score指定的顺序(例如10.0或72.3)返回查询指定的结果(编辑:末尾带有通配符)。我目前有以下完全不起作用的东西:
<!-- Note that the default search is on the field name -->
<requestHandler name="/scoresearch" class="solr.SearchHandler" default="true">
<!-- <lst name="invariants">
<str name="q">{!boost b=sum(double_score) defType=dismax v=$qq}</str>
</lst> -->
<lst name="defaults">
<str name="defType">dismax</str>
<str name="echoParams">explicit</str>
<int name="rows">10</int>
<!-- <str name="qq"></str> -->
<str name="qf">double_score</str>
<str name="debug">true</str>
<str name="q.alt">*:*</str>
</lst>
</requestHandler>如果我删除了评论,那么搜索就会起作用。无论我做什么查询,都会被q.alt替换,然后由double_score的值提升。如果这不能取代q.alt,那就是我们想要的效果。
还要注意,虽然我还没有深入研究更有趣的可能性,比如对名称进行标记化,但我确实计划这样做。因此,任何可能的建议/解决方案都不应排除这一点。
发布于 2011-09-16 06:33:51
我觉得你把事情复杂化了.试试这个:
<lst name="defaults">
<str name="defType">edismax</str>
<str name="qf">name</str>
<str name="q.alt">*:*</str>
<str name="bf">double_score</str>
</lst>发布于 2011-09-16 01:17:24
试一试
http://localhost:8983/solr/select/?q=Joe Smith&qf=double_score^1.2 description这意味着:
其中description是存储要搜索的文本的字段。
确保描述的数据类型为text,
stored="true" (in case you want to return snippets)
indexed="true" (so it is searchable)text数据类型使用过滤技术(词干、标记化),而string数据类型就是这样处理的。请参阅How to determine field-type for SOLR indexing?
https://stackoverflow.com/questions/7432163
复制相似问题