带连字符的弹性搜索查询字符串

elasticsearch query string with hyphens

弹性搜索 5.6

我将我的字段定义为文本字段,使用空格分析器以避免在连字符上拆分。

我想查询一下,使用查询字符串查询,如:

{
    "query": {     
      "query_string": {
        "query": "CODE-13-006",
        "default_operator": "AND",
        "analyzer": "whitespace"
      }
   }
}

因此,如果我没有指定要搜索的字段,(据我所知)它应该查询“*”字段。尽管像上面这样的查询没有 return 任何东西,但如果我要求特定字段,它会找到匹配项。

有什么提示吗?

我想答案就在这里 对于弹性 5.6,您可以使用字段名称 _all

好的,万一有人有类似的疑问...

我的问题是,即使我在查询 _all 字段(连接所有其他字段的值),我也忘记了默认情况下它使用标准分析器(用连字符分隔标记)。因此,即使我的字段使用关键字分析器,在我的 _all 查询中我也找不到它 - 仅仅是因为它被标准分析器拆分了。

愚蠢的错误,但也许将来会对某人有所帮助;)