Я проиндексировал один документ с более чем 150 метаданными, каждый с отображением:
"ACTIVE": {
"type": "text",
"term_vector": "with_positions_offsets",
"fields": {
"autocomplete_analyzed": {
"type": "text",
"analyzer": "autocomplete"
},
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
}
и настройкой:
"analysis": {
"analyzer": {
"autocomplete": {
"filter": [
"lowercase"
],
"tokenizer": "autocomplete"
}
},
"tokenizer": {
"autocomplete": {
"min_gram": "3",
"tokenize_on_chars": [
"whitespace",
"letter",
"digit"
],
"type": "edge_ngram",
"max_gram": "7"
}
}
}
Я использовал термины _vector
длябыть в состоянии использовать быструю векторную подсветку в моем запросе.Мой запрос:
{
"from": 0,
"size": 24,
"query": {
"bool": {
"should": [
{
"multi_match": {
"query": "current",
"type": "best_fields",
"fields": []
}
},
{
"query_string": {
"query": "*current*",
"fields": []
}
},
{
"multi_match": {
"query": "current",
"fuzziness": "1",
"fields": []
}
}
],
"minimum_should_match": 1
}
},
"highlight": {
"type": "fvh",
"fields": {
"*": {}
}
}
}
Мой запрос требует нечеткости, подстановочных знаков и соответствия фраз.Нечеткость и подстановочный знак отключены или включены в зависимости от моего требования на серверной части.Но в Свободном текстовом поиске я должен включить оба из них, включая выделение.
- С подсветкой мой запрос занимает более 15000 мс, но без выделения он занимает 800 мс
- Без размытия и с подсветкой он занимает около 1200 мс, а без размытия и выделения - около 500 мс.
Медлительность в запросе из-за нечеткости и выделения совместной работы.Каким образом выделение с помощью вектора терминов индексирует документ?почему запрос выполняется так медленно?Это из-за моего запроса или из-за индексации данных?Потому что я буду работать над миллионами документов.Как лучше всего справиться с этой проблемой времени?