使用eDismax进行邻近搜索



我已经使用solr创建了一个搜索引擎。我想创建一个查询,这样,如果用户搜索单词"学院",则单词"著名(在2个单词内,即"nament college"或"college is nament)"非常接近的文档的分数应该更高。如果单词著名不在附近,则应仅根据单词"学院"计算分数。

我想要的是这样的东西"著名学院"~2^10或"大学著名"~1^10或《大学》

如何在eDismax中实现这一点?

您要查找的内容称为短语斜率为2的短语搜索。例如,在solrconfig.xml中设置默认值可能看起来像:

  <requestHandler name="/phraseSearch" class="solr.SearchHandler">
    <lst name="defaults">
        <str name="defType">edismax</str>
        <str name="wt">xml</str>
        <str name="fl">Title</str>
        <str name="qf">Name^2 Description</str> <!-- The fields (and their weightings) to search in.-->
        <str name="rows">500</str>
        <str name="pf">Name^4 Description^2</str> <!-- Phrase field (and their weightings). Fields to search for closely located matches -->
        <str name="ps">2</str> <!-- Phrase slop. How many tokens apart must words be to be able to qualify as a phrase-->
     </lst>
  </requestHandler>

控制查询中的短语搜索可能看起来像:

http://mySolrHost:8983/solr/myEDismaxQuery?q=Title:famous+college&defType=edismax&pf=Title&ps=2

有关使用eDismax查询短语的更多信息,请参阅eDismax的Solr参考页面。

相关内容

  • 没有找到相关文章

最新更新