Может ли упругий поиск длинный документ? - PullRequest
0 голосов
/ 10 апреля 2019

У меня есть учебный проект по выявлению текстового контента, должен использовать JS. Ввод абзаца включает не менее 15 строк и поиск в 100 текстовых файлах от 3 до 5 страниц. Вывод - это какой текстовый файл имеет то же содержимое, что и текст ввода. Может ли Elastic решить это? Или вы можете порекомендовать мне несколько решений?

1 Ответ

0 голосов
/ 11 апреля 2019

Я нашел запись в блоге от https://ambar.cloud/blog/2017/01/02/es-large-text/, которая может ответить на ваш вопрос. Есть подробный пример, похожий на ваш.

ElasticSearch может работать с большими документами и при этом обеспечивать высокую производительность, но для таких случаев, как ваш, важно правильно настроить индекс.
Предположим, у вас есть документы ElasticSearch с текстовым полем объемом от 3 до 5 страниц текста.
При попытке запросить документы, содержащие абзац в большом текстовом поле, ElasticSearch выполнит поиск по всем терминам во всех документах и ​​их полях, включая большое текстовое поле.
Во время слияния ElasticSearch собирает все найденные документы в память, включая большое текстовое поле. После встраивания результатов в память ElasticSearch попытается отправить эти большие документы в виде одного ответа JSON. Это очень много с точки зрения производительности.

ElasticSearch должен обрабатывать большое текстовое поле отдельно от других полей. Для этого в отображении индекса необходимо установить параметр store:true для большого текстового поля. Это говорит ElasticSearch хранить поле отдельно от полей другого документа. Вы также должны исключить большое текстовое поле из _source, добавив этот параметр в настройках индекса:

_source: {
    excludes: [
        "your_large_text_field"
    ]
}

Если вы настроите свои индексы таким образом, большое текстовое поле будет отделено от _source. Запросы к большому текстовому полю теперь намного эффективнее, поскольку он хранится отдельно и нет необходимости объединять его с _source.

В заключение, да, ElasticSearch может обрабатывать поиск больших текстовых полей и с некоторыми дополнительными настройками может повысить производительность поиска в 1100 раз .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...