Сфинкс / Solr для ключевых слов / частота запросов - PullRequest
1 голос
/ 08 марта 2012

Нам необходимо эффективно выполнять два типа запросов к таблице, содержащей несколько миллионов записей:

1) Возвращает самые последние записи "x", содержащие ключевое слово "y".

2) Вернуть "x" наиболее часто встречающиеся ключевые слова для группы записей.

Мы думали об использовании некоторого внешнего поискового сервера, такого как Sphinx или Solr, но мы не уверены, сможет ли какой-либо из них поддерживать оба типа запросов.

Итак, каков наиболее эффективный способ выполнения запросов такого типа?

Ответы [ 2 ]

2 голосов
/ 09 марта 2012

Solr определенно может сделать обе эти вещи, если вы правильно настроили свой файл schema.xml.Ваши запросы могут выглядеть примерно так:

1 - http://localhost:8983/solr/solr-index/select?q=y&rows=x&sort=date+desc

2 - http://localhost:8983/solr/solr-index/select?q=*:*&rows=0&facet=true&facet.field=description

На самом деле вашей главной проблемой с Solr может быть получение данных в индекс.Но даже индексация и оптимизация выполняются быстро.

0 голосов
/ 09 марта 2012

Сфинкс может сделать 1), даже не потея. Нет проблем с ними.

2) Хитрее. Его не поддерживается из коробки. Но это может быть сделано. Нужно сделать изрядное количество дополнительной работы. По сути, вам нужно самостоятельно разбить текст на части и хранить идентификаторы как атрибут Multi-Value. Затем можно запустить группу по запросу в этом столбце mva.

Если вышеизложенное звучит в любом случае страшно, вам, вероятно, лучше всего использовать другое решение - из последнего ответа звучит так, как будто Solr сделает это.

...