Elastichsearch中带有斜杠的通配符返回零条目

时间:2019-03-14 18:09:23

标签: elasticsearch kibana elastic-stack

我正在使用elastichsearch 5来存储和搜索一些文档。 在我的文档中,我有一个名为URL的字段,如下所示:

{
    //... other fields
    "URL": "http://ip:8080/app/addItemToCart.html?workingItemId=X1"
}

我尝试对通配符使用查询,因为我想获取URL中包含单词“ addItemToCart”的所有文档。 这是我的查询:

GET myindex/_search
{
  "query" : {
    "wildcard" : { "URL" : "*addItemToCart*" }
  }
}

它返回零个文档,但是我在弹性搜索中有带有该关键字的文档。

这是我对索引的映射。

GET myindex/_mapping
{
  //.... other fields
    "URL": {
        "type": "text",
        "fields": {
          "keyword": {
            "type": "keyword",
            "ignore_above": 256
          }
        }
      }
}

怎么了?

1 个答案:

答案 0 :(得分:1)

in the documentation所述,通配符查询

  

匹配具有与通配符表达式(未分析)匹配的字段的文档

因此,您的查询应为:

GET myindex/_search
{
  "query" : {
    "wildcard" : { "URL.keyword" : "*addItemToCart*" }
  }
}