elasticsearch:在创建文档时将元字段_id复制到其他字段

时间:2017-08-29 14:09:02

标签: elasticsearch elasticsearch-mapping

我正在使用elasticsearch。我看到每个文档都有元字段_id。我想使用这个元字段搜索文档,因为我没有任何其他字段作为文档中的唯一字段。但是_id是一个字符串,除非我们将字段的映射添加为type :keyword,否则可以使用无法搜索的短划线。但有可能如上所述enter image description here。所以现在我想在文档中添加另一个字段newField,并使其与_id相同。一种方法是:首先创建文档并将_id分配给该字段并再次保存文档。但是这将有2个连接并不是那么好。所以我想在创建文档时找到一些设置newField的解决方案。它甚至可能吗?

2 个答案:

答案 0 :(得分:0)

您可以搜索包含短划线的文档:

page

我们刚刚创建了一个带有短划线

的文档
PUT my_index/tweet/testwith-
{
  "fullname" : "Jane Doe",
  "text" : "The twitter test!"
}

我们搜索具有以下ID的文档:GET my_index/tweet/_search { "query": { "terms": { "_id": [ "testwith-" ] } } }

testwith-

我们找到了。我们可以搜索包含它的文档。

答案 1 :(得分:0)