【问题标题】:What is correct Solr Fuzzy search syntax?什么是正确的 Solr 模糊搜索语法?
【发布时间】:2016-05-17 11:02:29
【问题描述】:

我一直在尝试通过 Java Web 服务在 Solr 中进行模糊搜索,但在搜索查询中添加 ~ 不起作用。

我的非模糊查询看起来像:

((param_name : "gold") // Works return items with "gold" in it

为了让它变得模糊,我尝试了多种方法,但似乎没有任何效果

((param_name : "glod~") // Adding inside quotes

((param_name : "glod"~) // Adding outside quotes

((param_name : "glod"\~)) // Escaping

真正有效的唯一方法是根本不添加引号,但我必须添加引号才能使特殊字符等起作用。

((param_name : glod~)) // works, returns matching results

有人知道吗?

【问题讨论】:

    标签: java solr lucene


    【解决方案1】:

    是的,您需要手动转义特殊字符。

    要转义这些字符,请在字符前使用 \。

    在 Solr 中,引号用于短语。

    如果你想结合模糊词组搜索你需要做的:

    ((param_name : glod~) AND param_name : glod~))
    

    ((param_name : glod~)) 是正确的做法。

    这样做"gold year"~10 将运行邻近搜索。 例如,要在文档中搜索相距不超过 10 个单词的“gold”和“year”,请使用搜索

    【讨论】:

      猜你喜欢
      • 2013-01-21
      • 1970-01-01
      • 1970-01-01
      • 2013-05-15
      • 1970-01-01
      • 2013-02-18
      • 1970-01-01
      • 2012-06-08
      • 1970-01-01
      相关资源
      最近更新 更多