【问题标题】:elastic not returning data if part of string is being used to search如果字符串的一部分用于搜索,则弹性不返回数据
【发布时间】:2017-06-05 16:53:23
【问题描述】:

我在从 Elastic 取回数据时遇到问题 这是映射

"device": {
   "properties": {
      "deviceName": {
         "type": "string",
         "analyzer": "snowball"
       }
    }
}

当我在查询中使用完整的设备名称(即 ZACe0933d850f)时,我将返回结果。

工作查询

{"query": {"bool":{"must":[{"query_string":{"query":"ZACe0933d850f","fields":["*name","*Name","*text","*Text"]}}]}}}

但是当我尝试仅使用 ZAC 进行搜索时,我没有得到任何结果。

查询无效

{"query": {"bool":{"must":[{"query_string":{"query":"ZAC","fields":["*name","*Name","*text","*Text"]}}]}}}

它与雪球分析器有关吗?我对弹性很陌生,在这里需要一些快速帮助。

提前非常感谢...

【问题讨论】:

    标签: elasticsearch snowballanalyzer


    【解决方案1】:

    您的问题是您不知道文本中的弹性搜索究竟如何。您的文本将被标记,并且您的输入中有一个 ZACe0933d850f 标记,但没有 ZAC。可能您应该在分析器中使用 ngram 令牌过滤器。

    【讨论】:

      猜你喜欢
      • 2021-06-28
      • 2019-03-16
      • 1970-01-01
      • 2020-10-14
      • 1970-01-01
      • 2012-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多