我必须将许多文档编入索引:
POST /example/doc
{
id : "type-name",
foo: bar
}
我希望检索所有类型的列表。例如
POST /example/doc
{
id : "AAA-123",
foo: bar
}
POST /example/doc
{
id : "AAA-456",
foo: bar
}
POST /example/doc
{
id : "BBB-123",
foo: bar
}
并要求elasticseaarch给我一个列表,其中我有AAA和BBB。
更新 我也使用自定义分析仪解决了
"settings": {
"analysis": {
"char_filter" : {
"remove_after_minus":{
"type":"pattern_replace",
"pattern":"-(.*)",
"replacement":""
}
},
"analyzer": {
"id_analyzer":{
"tokenizer" : "standard",
"char_filter" : ["remove_after_minus"]
}
}
}
}
答案 0 :(得分:2)
如果你保留标准分析仪,id将被分成“ - ”。因此,如果您的类型大小写相同,则可以使用简单的构面查询
curl -XPOST "http://localhost:9023/index/type/_search?size=0&pretty=true" -d
'{
"query" : {
{ "regexp":{ "id": "[A-Z]+" }
},
"facets" : {
"id" : {
"terms" : {
"field" : "id",
"size" : 50
}
}
}
}'
应该给你一些可以使用的东西。