Solr 使用eDismax进行邻近搜索

Solr 使用eDismax进行邻近搜索,solr,lucene,solr4,edismax,dismax,Solr,Lucene,Solr4,Edismax,Dismax,我用solr创建了一个搜索引擎。我想创建一个查询,如果用户搜索单词“college”,那么与单词“名人”非常接近的文档的分数(在两个单词内,即“名人学院”或“学院是名人”)应该更高。如果“著名”一词不在附近,则应仅根据“学院”一词计算分数 我想要的是这样的东西 “著名学院”~2^10或“著名学院”~1^10或“学院” 如何在eDiscoveryMax中实现这一点?您正在寻找的是一个短语搜索,短语斜率为2。例如,在solrconfig.xml中设置默认值可能类似于: <requestHa

我用solr创建了一个搜索引擎。我想创建一个查询,如果用户搜索单词“college”,那么与单词“名人”非常接近的文档的分数(在两个单词内,即“名人学院”或“学院是名人”)应该更高。如果“著名”一词不在附近,则应仅根据“学院”一词计算分数

我想要的是这样的东西 “著名学院”~2^10或“著名学院”~1^10或“学院”


如何在eDiscoveryMax中实现这一点?

您正在寻找的是一个短语搜索,短语斜率为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>

有关使用eDiscoveryMax进行短语查询的更多信息,请参见。

如果我想搜索名人是否位于我查询的“学院”附近,请详细说明在何处输入“名人”一词。此外,它不应该考虑在查询中著名的,如果它不在密切接近,这将返回结果,即使该文件只有“著名”一词,你将需要改变“标题”的搜索部分,无论你使用的领域。您没有具体说明要搜索的字段的名称。我理解这一部分。我想说的是,你提到的查询可能也会返回只有单词“著名”而不是“庙宇”的文档。这不是我想要的
http://mySolrHost:8983/solr/myEDismaxQuery?q=Title:famous+college&defType=edismax&pf=Title&ps=2