
Как ускорить поиск фраз в Manticore Search
ManticoreSearch 5 минут назад Как ускорить поиск фраз в Manticore Search 7 мин 10 Поисковая оптимизация * Поисковые технологии * Open source * SQL * Базы данных * Краткоbigram_index можно использовать для разных задач,...
Anthropic — What company has the best second artificial intelligence model at the end of June?
В сфере искусственного интеллекта произошло заметное событие. ManticoreSearch 5 минут назад Как ускорить поиск фраз в Manticore Search 7 мин 10 Поисковая оптимизация * Поисковые технологии * Open source * SQL * Базы данных * Краткоbigram_index можно использовать для разных задач, но в этой статье мы говорим именно о производительности поиска фраз: в приведённом ниже бенчмарке на 1 млн документов bigram_index='all' повысил QPS примерно в 2. 9x и сократил среднее время ответа фразовых запросов примерно в 3. Если ваша основная проблема — сопоставление xt850 с xt 850, а не ускорение поиска фраз, см.
Как заставить xt850 совпадать с xt 850 . Поиск по фразам бывает дорогим. Даже если запрос короткий, движку всё равно нужно проверять порядок слов и стоят ли они рядом, и это особенно заметно, когда:отдельные слова сами по себе очень частотныобъём данных большойфразовые запросы часто встречаются в вашей нагрузкеИменно для этого предназначен bigram_index .
Технические детали
Что на самом деле делает индексация биграммОбычно фраза вроде "noise cancelling headphones" обрабатывается как набор отдельных токенов, которые при этом должны идти в правильном порядке и стоять рядом друг с другом. Индексация биграмм позволяет Manticore заранее сохранять пары соседних токенов, например:noise cancellingcancelling headphonesЭто даёт движку более быстрый способ сузить набор документов-кандидатов при поиске по фразе. Здесь мы говорим именно про ускорение поиска по фразам.
Важное замечание: биграммы работают на уровне токенизацииЭтот момент легко упустить, если смотреть только на историю про ускорение в идеальном сценарии. bigram_index работает только на уровне токенизации. Он не учитывает последующие преобразования, такие как морфология, словоформы или стоп-слова, и из-за этого ожидания от поиска по фразам могут не совпасть с реальным поведением.
Практический вывод простой: биграммы могут отлично ускорять поиск фраз, но если ваш индекс сильно опирается на морфологию, словоформы или стоп-слова, сначала проверьте на своих данных, как у вас реально работает поиск по фразам. Режим 1: Поведение по умолчаниюЭто базовый режим. Явная индексация биграмм не включена, поэтому списки постингов для биграмм не хранятся.
Отраслевые последствия
Используйте его, когда:поиск фраз редокдокументы короткиевам нужна самая быстрая индексацияПримерDROP TABLE IF EXISTS bi_none_demo; CREATE TABLE bi_none_demo(title text); INSERT INTO bi_none_demo VALUES (1,'wireless noise cancelling headphones (2,'noise cancelling microphone (3,'wireless gaming headset SELECT id, title FROM bi_none_demo WHERE MATCH('"noise cancelling" Это базовое поведение. Запрос возвращает ожидаемые строки, но у Manticore нет предвычисленных списков постингов биграмм, которые помогали бы обрабатывать фразу эффективнее. Режим 2: allbigram_index = all Это самый сильный режим ускорения поиска по фразам.
Каждая пара соседних токенов индексируется как биграмма.
Этот прогресс даёт важные сигналы о будущем отрасли, и технологический мир внимательно наблюдает.





