#lucene #sphinx #new-operator #indexer
#lucene #сфинкс #новый оператор #индексатор
Вопрос:
Существуют ли какие-либо новые технологии для индексации и полнотекстового поиска данных по атрибутам? Лучше, чем sphinx, lucene и т.д.? Может быть, какие-то новые продукты в ранних бета-версиях?
Лучше — я имею в виду быстрее с ОГРОМНЫМ объемом данных более 100 МБ записей — меньшее использование памяти, более быстрый поиск и т.д., Возможно, с некоторыми встроенными функциями масштабируемости…
Заранее спасибо, ребята!
Ответ №1:
Не могли бы вы предоставить более подробную информацию о том, чем вас разочаровал Sphinx?
На самом деле Sphinx может легко обрабатывать даже 1B сбор и имеет встроенные функции масштабируемости.
Комментарии:
1. Несколько проблем: 1) процесс поиска по индексу 100M использует много памяти — более 1 ГБ. При наличии нескольких одновременных подключений это становится проблемой. 2) Поиск атрибутов слишком медленный — требуется полное сканирование. Итак, было бы неплохо услышать о любых новых технологиях для решения этих проблем.
2. Вы могли бы значительно снизить потребление памяти, установив более высокие значения для этих параметров prefix infix_len, min_word_len, добавив стоп-слова, понизив параметр max_matches, используя workers=fork, используя параметр ondisk_dict_default=1.
3. Поиск по атрибутам не является необработанным методом полного сканирования, но может пропускать целые блоки атрибутов с учетом минимальных максимальных значений в этих блоках. Вот почему не должно быть сбоев при поиске по атрибутам. В любом случае вы могли бы разделить свой индекс по частям и выполнить поиск документа, соответствующего условию атрибута, с помощью опции распределенный индекс dist_threads