我有一个ID列表:
bc2***********************13
b53***********************92
39f***********************bb
eb7***********************7a
80b***********************22
每个*都是一个未知的字符,我需要找到与这些模式匹配的所有ID.
我尝试使用id,_id和ID等字段名称的正则表达式过滤器,始终使用“bc2.* 13”(或其他),但即使对于现有文档也始终没有匹配.
最佳答案 默认情况下,_id字段未编入索引:这就是您没有结果的原因.
尝试在映射中分析设置_id字段:
POST /test_id/
{
"mappings":{
"indexed":{
"_id":{
"index":"analyzed"
}
}
}
}
添加一些文档:
PUT /test_id/indexed/bc2***********************13
{
"content":"test1"
}
PUT /test_id/indexed/b53***********************92
{
"content":"test2"
}
我查看了一个简单的正则表达式查询:
POST /test_id/_search
{
"query": {
"regexp": {
"_id": "bc2.*13"
}
}
}
结果:
"hits": {
"total": 1,
"max_score": 1,
"hits": [
{
"_index": "test_id",
"_type": "indexed",
"_id": "bc2***********************13",
"_score": 1,
"_source": {
"content": "test1"
}
}
]
}
希望这可以帮助 :)