【问题标题】:Exact Match in SOLR 5.1SOLR 5.1 中的精确匹配
【发布时间】:2016-05-25 08:46:23
【问题描述】:

我已经设置了 Solr 5.1.0,并从 MYSQL 数据库导入了正确的数据。效果很好。

但我只想要完全匹配的结果或与之相关的结果。

喜欢,

Dancers in Mumbai

它给出了包含“dancers + mumbai”和只有“dancers”+只有“mumbai”关键字的所有结果。我想要的结果必须只包含“舞者 + 孟买”而不是其他人。

【问题讨论】:

    标签: java lucene schema solr5


    【解决方案1】:

    这不是一个完整的答案,但这是我试图解决类似问题的方向。非常欢迎评论。

    第 1 步: 实现多个 Solr 核心,核心 1 是“工作”(舞者/律师/等),核心 2 是“城市”(孟买/钦奈/等)。

    第 2 步: 查询每个核心的精确匹配,因此在相关字段上实现 KeywordTokenizerFactory 以仅查找精确匹配。这将为您提供跨核心的所有匹配项(例如,工作:舞者和城市:孟买)。

    第 3 步: 使用 EDisMax 执行一般查询以进行用户友好的搜索(例如,在多个字段中搜索“dancers in mumbai”),并使用 boost 字段来提升在先前查询中找到的工作/城市。

    我很想知道是否有更好的方法来做如此复杂的事情,但我还没有找到。希望对您有所帮助。

    【讨论】:

      【解决方案2】:

      使用必需的术语,例如:+dancers +mumbia

      或短语查询:“dancers in mumbia”

      会工作的。

      您还可以将查询的默认运算符设置为“AND”using the q.op parameter

      【讨论】:

      • 我有 2 个不同的字段,例如 talent_namecity 都是独立的。所以它从两者中获取数据。但它给出的结果仅包含 dancers 并且仅包含 mumbai 包含具有共同结果的结果。我只想要包含 dancer 作为人才和 mumbai 作为城市的结果。
      • @MayurChampaneria 所以,请查询。在这种情况下,短语查询并不真正相关,但其他两个选项中的任何一个都可以正常工作。 Reading the query parser syntax documentation might help.
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-09
      • 2013-01-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多