У меня есть простая структура do c следующим образом.
{
"did" : "1",
"uid" : "user1",
"mid" : "pc-linux1",
"path" : "/tmp/path1"
}
Мне нужно запросить elasti c, который точно соответствует всем полям
GET index2/_search
{
"query": {
"bool":{
"must": [
{
"term" : { "uid" : "user1"}
},
{
"term" : { "mid" : "pc-linux1"}
},
{
"term" : { "did" : "1"}
},
{
"term" : { "path" : "/tmp/path1"}
}
]
}
}
}
Соответствие должно произойдет без какого-либо elasti c 'анализа' для ключевых слов, так что "/ tmp / path1" сопоставляется как полный термин.
Я попытался использовать пользовательское сопоставление: с
"index": false
, который не работает.
PUT /index2?include_type_name=true
{
"mappings" : {
"_doc": {
"properties" : {
"did" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"index" : false,
"ignore_above" : 256
}
}
},
"mid" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"index" : false,
"ignore_above" : 256
}
}
},
"path" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"index" : false,
"ignore_above" : 256
}
}
},
"uid" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"index" : false,
"ignore_above" : 256
}
}
}
}
}
}
}
Я используюastic7.0 и несколько постов, предлагающих пользовательское сопоставление с
"index": "not_analysed"
не принимается в качестве действительного сопоставления в elasti c 7.0
Есть предложения?