Спасибо за оперативный ответ.
// SETTINGS & MAPPINGS
"settings":{
"number_of_shards":1,
"number_of_replicas":0,
"analysis":{
"filter":{
"autocomplete_filter" : {
"type":"edge_ngram",
"min_gram": 1,
"max_gram": 15
},
"my_stopwords": {
"type": "stop",
"stopwords": "а,без,более,бы"
},
"my_synonyms": {
"type": "synonym",
"synonyms" : [ "штаны, шировары => брюки","брюки, штаны => шировары" ]
}
},
"analyzer":{
"autocomplete":{
"type":"custom",
"tokenizer":"standard",
"filter":["lowercase", "autocomplete_filter"]
},
"my_search_analyzer": {
"type": "custom",
"tokenizer": "standard",
"filter": [ "lowercase", "russian_morphology", "english_morphology", "my_stopwords", "my_synonyms" ]
}
}
}
},
"mappings":{
"_default_":{
"_source":{
"enabled": true
},
"properties":{
"date_upd":{
"type":"date",
"doc_values":true,
"index":"not_analyzed"
},
"title":{
"type":"string",
"analyzer": "autocomplete",
"search_analyzer": "my_search_analyzer"
},
"body":{
"type":"string",
"analyzer": "my_search_analyzer",
"search_analyzer": "my_search_analyzer"
},
"attribute":{
"type":"nested",
"properties":{
"size":{
"type":"string",
"analyzer": "my_search_analyzer",
"search_analyzer": "my_search_analyzer"
}
}
},
"type_prod":{
"type":"string",
"doc_values":true,
"index":"not_analyzed"
},
"price":{
"type":"string",
"doc_values":true,
"index":"not_analyzed",
"null_value": "NULL"
}
}
}
}
// BODY
{
"date_upd" : "2016-01-01",
"title" : "Продам брюки мужские",
"body" : "Материал хлопок, производство Россия",
"attribute":{
"size":[ "m", "l", "48" ]
},
"type_prod" : 1,
"price" : 900
}
Отдельным query поставил исходя из мануала, пробовал сделать все это в одном запросе, получал ошибки.
Вы правы, в attribute планируются данные о товаре такие как размер, цвет, в некоторых товарах там может быть к примеру длина рукава, в других массив данных максимум [x1, x2, x3], минимум [x1] - товары планируются разные, соответственно и атрибуты, но думаю формат этих данных можно будет уложить в массив [x1, x2, x3,........]. В мануале читал, что nested по умолчанию динамический тип данных,
1. Можно ли в nested добавлять новые поля по ходу развития проекта с возможность поиска в этом массиве ( [x1, x2, x3]) - x1 и / или x2, x3?
2. Можно ли применить какой то другой, более удачный динамический тип данных для хранения массива вида [x1, x2, x3], с возможностью поиска в нем x1 и/или x2, x3?
3. Сейчас запрос выстроен в таком порядке:
а.) сортируется в обратном порядке
б.) выбирается только тип продукции №1
в.) осуществляется ПП
Вопрос: при осуществлении полнотекстового поиска ES учитывает только типы №1? т.е. операция произведенная в пункте "б." уже отсеяла все други типы и ПП стало проще осуществить или порядок запросов не имеет значения?