【问题标题】:Elasticsearch filtered search for sub-object fieldsElasticsearch 过滤搜索子对象字段
【发布时间】:2012-02-24 16:15:42
【问题描述】:

如何在 ElasticSearch 中对子对象字段进行过滤搜索?例如,我的文档有一个 id 和一个 data 字段,它是一个 JSON 数组,用于说明数据在我的数据库中的存储方式:

{_id: 000, merchant: "merchant_1", email: "hello@email.com"}

我的搜索查询:

"query": {
    "filtered": {
        "filter": { "term": { "data.merchant": "merchant_1"} },
        "query": {
            "query_string": {"query": "hello"} }
        }
    }
}

不返回任何内容,但仅使用 query_string hello 进行查询会返回正确的行。更改 "data.merchant" => "merchant" 也不会改变任何内容。

我在这里做错了吗?

更新:我最终只使用了一个布尔查询,它有效。

【问题讨论】:

    标签: elasticsearch


    【解决方案1】:
    "query": {
        "filtered": {
            "filter": { "term": { "data.merchant": "merchant_1"} },
            "query": {
                "query_string": {
                    "default_field": "_all",
                    "query": "hello"
                }
            }
        }
    }
    

    这应该适用于您的情况。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-01-28
      • 2021-03-10
      • 1970-01-01
      • 2021-08-27
      • 2016-10-26
      • 2014-09-08
      • 1970-01-01
      相关资源
      最近更新 更多