В нашем сопоставлении мы использовали фильтр стеммера minimal_english
. Это делается для того, чтобы для поиска были доступны только слова в единственном и множественном числе, а не похожие слова. например. Test
и Tests
должны быть доступны для поиска при вводе термина - Test
- но Tester
,Testers
,Testing
не должны быть. При попытке поиска с использованием приведенного ниже RESTful API типы атрибутов multi_field
доступны для поиска, а типы атрибутов nested
— нет:
curl -X GET "http://10.113.124.136:9400/libtester/_search?pretty=true" -d '{
"query": {
"query_string": {
"query": " DescriptionDescription ",
"fields": [
"abc"
]
}
}
}'
Сопоставления показаны ниже:
{
"properties": {
"abc": {
"type": "multi_field",
"fields": {
"c_asset_id": {
"type": "string",
"index": "analyzed",
"include_in_all": true,
"analyzer": "basic_english"
},
"untouched": {
"type": "string",
"index": "analyzed",
"include_in_all": false,
"analyzer": "string_lowercase"
}
}
},
"xyz": {
"type": "nested",
"properties": {
"c_viewpoint": {
"type": "multi_field",
"fields": {
"c_viewpoint": {
"type": "string",
"index": "analyzed",
"include_in_all": true,
"analyzer": "basic_english"
},
"untouched": {
"type": "string",
"index": "analyzed",
"include_in_all": false,
"analyzer": "string_lowercase"
}
}
}
}
},
...
}
}
Это связано с отображением вложенных типов - xyz, что они не доступны для поиска из того же API, что и типы multi_field?