Какой алгоритм для граненого поиска? - PullRequest
2 голосов
/ 23 марта 2012

фасетный поиск часто встречается в наши дни, но каков его алгоритм, как он так быстро выполняет фасетный поиск среди больших наборов данных?

Я собираюсь реализовать фасетный поиск самостоятельно, поэтому любые советы или подсказкидобро пожаловать

Ответы [ 2 ]

3 голосов
/ 23 марта 2012

Вкратце: вы создаете несколько индексов, например, один для текстов, один для дат, один для географического местоположения, один для чисел и т. Д. Когда вы добавляете документ в свой индекс, вы определяете, как индексировать каждое поле, которое оно имеет.

Получение документов обычно включает в себя пересечение результатов (идентификаторов документов) из нескольких индексов (продуктов со словами "обувь" в радиусе 100 км и ценовом диапазоне 50-100).

Чтобы масштабировать это до огромных наборов данных, вы обычно используете метод, называемый sharding - каждый сервер содержит данные индекса для N документов, и вы отправляете запрос всем серверам индекса одновременно.Каждый из них возвращает лучшие результаты X, а вы сортируете их и получаете унифицированные результаты X.

Надеюсь, это было то направление, которое вы искали.

0 голосов
/ 07 апреля 2012

Быстрый поиск в Google Scholar для поиска "Faceted Search" должен найти некоторые исследовательские работы ребят из Endeca.

http://scholar.google.com/scholar?q=faceted+search&hl=en&btnG=Search&as_sdt=1%2C47&as_sdtp=on

...