Как искать фразы в инвертированном индексе?

5ef9f0a04c3f6781438716.jpeg
На примере запроса "blue sky" поисковый индекс выдает все документы по слову blue и по слову sky. Дальше мы можем просто найти из этих документов одинаковые, и это и будут те документы на которых есть фраза blue sky.

Но выборка одинаковых документов это очень ресурсоемкая операция, потому что приходится перебирать их все, а это могут быть и миллионы разных документов
  • Вопрос задан
  • 148 просмотров
Пригласить эксперта
Ответы на вопрос 3
inoise
@inoise
Solution Architect, AWS Certified, Serverless
Term в таком случае должен составлять 2 слова. Никакой магии
Ответ написан
dimonchik2013
@dimonchik2013
non progredi est regredi
скачай
https://www.ozon.ru/context/detail/id/5497130/

есть отсканированная в сети
там ответы на все вопросы

изначально - все как и пишешь
индекс - это список документов в которое входит слова

два слова - два списка
их пересечение - обычный XOR, хз кто сказал что оно ресурсоемко

а вот уже чтобы ответ был РЕЛЕВАНТЕН - там дофига чего наворочено сверху, что Иван Шумов тебе и пытается объяснить

и да, в современном поиске индекс это список документов соответствующих ВЕКТОРУ запроса

никто его онлайн не делает - все просчитано заранее
онлайн только пытаются свести запрос к наилучшему (нескольким) заренее просчитанным векторам
Ответ написан
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
На примере запроса "blue sky" поисковый индекс выдает все документы по слову blue и по слову sky. Дальше мы можем просто найти из этих документов одинаковые, и это и будут те документы на которых есть фраза blue sky.
нет. Будут содержащие одновременно и blue, и sky. Но не лишь заданную фразу: blue sky.

Создавайте "дерево" связей всех слов (вектора следования) и ищите нужные "цепочки" (фразы) в этом "дереве" с любым максимальным "расстоянием".
При импорте нового документа - дополняйте/обновляйте "дерево" связей.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы