Как правильно настроить подсветку поисковых слов в больших документах с помощью быстрого векторного подсветчика?
Я пробовал документацию и следующие настройки для индекса (как буквально Python, комментировал альтернативные настройки, которые я также пробовал, с магазином и без):
{
"settings": {
"number_of_shards": 1,
"number_of_replicas": 0
},
"mappings": {
"members": {
"dynamic": "strict",
"properties": {
"url": {
"type": "text",
"term_vector": "with_positions_offsets",
#"index_options": "offsets",
"store": True
},
"title": {
"type": "text",
#"index_options": "offsets",
"term_vector": "with_positions_offsets",
"store": True
},
"content": {
"type": "text",
#"index_options": "offsets",
"term_vector": "with_positions_offsets",
"store": True
}
}
}
}
}
Поиск выполнялся по следующему запросу (опять же, комментированные места пробовали одно за другим, в некоторых комбинациях):
{
"query": {
"multi_match": {
"query": term,
"fields": ["url", "title", "content"]
},
},
"_source": {
#"includes": ["url", "title", "_id"],
# "excludes": ["content"]
},
"highlight": {
"number_of_fragments": 40,
"fragment_size": 80,
"fields": {
"content": {"matched_fields": ["content"]},
#"content": {"type": "fvh", "matched_fields": ["content"]},
#"title": {"type": "fvh", "matched_fields": ["title"]},
}
}
}
Проблема в том, что когда FVH не используется, ElasticSearch жалуется, что поле «контент» слишком велико. (И я не хочу увеличивать разрешенный размер). Когда я добавляю тип «fvh», ES жалуется, что необходимы векторы терминов: даже если я проверил, есть ли они там, запрашивая информацию о документе (смещения, запуска и т. Д. c):
поле [content] должно быть проиндексировано термином vector с смещением позиции для использования с быстрым векторным маркером
Похоже:
- Когда я опускаю
"type": "fvh"
, оно не используется, хотя в документации упоминается, что это значение по умолчанию, когда "term_vector": "with_positions_offsets". - Я могу видеть векторы терминов в индексе, но ES не находит их. (косвенно, при индексировании с помощью векторов терминов индекс почти в два раза больше)
- Все испытания включали удаление старого индекса и его добавление снова.
Это также настолько коварно, что оно не удается только при обнаружении большого документа. Основные моменты есть для запросов, где документы маленькие.
Как правильно настроить основные моменты в бесплатной версии ElasticSearch 7 (я пробовал в Ubuntu с бинарным deb от поставщика)?