spring data elasticsearch中的include_in_all设置

时间:2016-12-01 19:57:27

标签: java spring elasticsearch spring-data-elasticsearch

根据Elasticsearch documentation,可以使用 include_in_all 设置从 _all 字段中排除字段(设置为 false ) 。我需要从 _all 中排除一个字段,我正在使用spring data elasticsearch来定义我的映射。我没有找到办法这样做。

这是否可以使用spring data elasticsearch注释?

2 个答案:

答案 0 :(得分:0)

您可以将类型的映射保存到json文件中。然后将'“include_in_all”:false'添加到要排除的字段中。这看起来应该是这样的。

{
  "my_type": {
    "properties": {
      "excludedField": {
        "type": "text",
        "include_in_all": false
      }
    }
  }
}

然后使用您喜欢的JSON阅读器加载文件,将其解析为字符串并使用elasticsearch api更改映射。

client.admin().indices()
      .preparePutMapping("my_index")
      .setType("my_type")
      .setSource(loadedFileString)
      .get();

编辑:我刚注意到你想为它使用注释。也许@Field注释有一个参数吗?对不起,我对注释没有经验。

答案 1 :(得分:0)

不幸的是,Spring Data Elasticsearch无法做到这一点。改进请求已经有一年了,但它的优先级很小,所以现在没有希望: https://jira.spring.io/browse/DATAES-226

在我上一个项目中,我不得不做很多简单的搜索(而不是一个#34; _all"字段,每个字段使用1次搜索),然后我将所有结果联合起来。我假设Spring Data Elasticsearch对这个问题没有很好的解决方法。