Я хочу создать запрос, чтобы дать мне все верхние виджеты в поле виджетов моего документа для работы с автозаполненным поиском. Это многозначное поле с токенайзером ключевых слов и токенайзером автозаполнения.
Проблема, с которой я сталкиваюсь с фильтрами сегментов так же, как это делает фильтр aggs.
Некоторые примеры данных,несколько документов, содержащих такие значения, как
виджеты ['Thingy', 'Whatsit', 'Thingyamybob', 'Big Thingy']
my-index/my-type/_search?pretty=true&typed_keys=true
{
"aggs": {
"filterAggs": {
"filter": {
"match": {
"widgets": {
"query": "t" <- will filter all the docs that match the autocomplete filter.
}
}
},
"aggs": {
"bucketAggs": {
"terms": {
"field": "widgets.keyword", <- Will bring back all the values in the matched docs, including the ones that didn't match, e.g. 'Whatsit'
"include": "t.*", <- This is the closest I've got but it's using regex and not the autocomplete filter.
"size": 7
}
}
}
}
},
"size": 0
}
Без "include": "t.*"
я получаю все значенияв том числе несовпадающий «Whatsit». "include": "t.*"
использует регулярное выражение, которое не совпадает с методом запроса на совпадение и даст другие результаты, оно чувствительно к регистру, не имеет сворачивания ASCII и т. Д.