匹配查询不返回任何内容

时间:2019-07-25 16:44:02

标签: python elasticsearch

我想在字段中搜索文本。

我试图解决this documentation

中的问题

我的索引之一包含结构如下的项目:

{
    url: "https://exampleurl.com"
    username: "some_username"
}

这是我的查询:

"query": {
    "multi_match":  {
        "query": keyword,
        "type": "phrase",
        "fields": [ "username", "url" ]
    }

}

也可以查询:

"query": {
    "bool": {
        "must": {
            "multi_match":  {
                 "query": keyword,
                 "type": "phrase",
                 "fields": [ "username", "url" ]
            }
        },
    }
}

"query": {
"bool": {  
    "must": [{
        "match": {
            "username": keyword,
        }
     }, {
        "match": {
            "url": keyword
        }
    }]
}
}

但是结果是一个空数组

1 个答案:

答案 0 :(得分:0)

请尝试以下查询。

  1. 创建索引
    PUT test
    {
        "settings" : {
            "number_of_shards" : 1
        },
        "mappings" : {
            "properties" : {
                "url" : { "type" : "text" },
                "username" : { "type" : "text" }

            }
        }
    }
  1. 插入文档
    PUT test/_doc/1
    {
        "url" : "https://exampleurl.com",
        "username" : "Arjun Das"    
    }
  1. 搜索

    GET test/_search
    {
    "query": {
        "multi_match":  {
            "query": "http",
            "type": "best_fields",
            "fields": [ "username", "url" ],
            "fuzziness":"2"

        }
    }
    }