静态映射查找多个位置

时间:2019-11-01 16:27:15

标签: elasticsearch

我正在通过类似以下内容的方式显式创建映射:

PUT field1
 {
  "mappings": {
    "def": {
      "dynamic": false,
      "_all": {
        "enabled": true
      },
      "_source": {
        "enabled": true
      },
      "date_detection": false,
      "numeric_detection": false,
      "properties": {
        "field1": {
          "type": "keyword",
          "store": true,
          "ignore_above": 8191
        }
      }
    }
  }
}

我放了一个类似下面的对象:

POST field1/def
{ "field1":["blah"],
  "inner.field1":["blah3"]
}

当我使用“ stored_fields”:“ *”进行搜索时,会看到以下字段:

{
        "_index": "field1",
        "_type": "def",
        "_id": "AW4n1Ro-7hYlm0zsHjiV",
        "_score": 1,
        "_source": {
          "field1": [
            "blah"
          ],
          "inner.field1": [
            "blah3"
          ]
        },
        "fields": {
          "field1": [
            "blah",
            "blah3"
          ]
        }
      }

因此,看来我的“ field1”映射与“ field1”和“ inner.field1”都匹配,这与我期望的不一样。我一直很难找到有关匹配如何/应该如何工作的文档,以便我可以正确创建映射。

对任何解释和对文档的引用表示赞赏。

更新: 仅当字段是数组时,才会发生上述现象。我已经更新了以下内容以显示它。

有趣的是,两个值都必须是数组才能在存储字段中并置。

另外,这是elasticsearch 5.6(由于插件而被我困住了。)

0 个答案:

没有答案