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