简单的查询字符串忽略字段

时间:2016-02-02 14:31:41

标签: elasticsearch

我正在尝试创建一个基于名称或数字返回结果的搜索。我的映射属性看起来像这样。

"properties": {
    "id": {
        "type": "integer"
    },
    "img": {
        "type": "binary"
    },
    "name": {
        "type": "string"
    }
}

我所做的查询是simple query string query,如下所示:

{
    "query": {
        "simple_query_string": {
            "query": "test~5",
            "analyzer": "snowball",
            "fields": ["name", "id"],
            "default_operator": "and",
            "lenient": true
        }
    }
}

对于仅使用name字段中的数据的查询,此方法非常适用。例如,当我查询"1488"时,它应该返回带有id == 1488的项目,但它不会返回任何内容。

起初我以为lenient遗失了,但这并没有解决问题。

我需要查看我的查询才能工作?

- [编辑] -

认为ES可能只搜索第一个字段。所以我将查询更改为使用"fields": ["id", "name"]。这在查找字符串时仍然有效,但在查找数字时仍然没有结果。

0 个答案:

没有答案