несколько потребностей в одном запросе - PullRequest
1 голос
/ 20 декабря 2010

У меня есть сомнения по поводу возможностей Solr.мне нужно сделать запрос со специальными вопросами:

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

эти результаты должны быть разбиты на страницы.

возможно ли сделать это в одном запросе?*

1 Ответ

0 голосов
/ 26 декабря 2010

После обнаружения, что случайный порядок поддерживается в solr через:

<fieldType name="random" class="solr.RandomSortField" />
<field name="random" type="random" indexed="true" stored="false"/>

, эти запросы будут возможны, но НЕ в одном запросе

Хотя можно использовать facet и facet.queryфункция, но это только возвращает количество ... не документы.

Я бы установил отдельный рекламный индекс вместо обычного способа реализации "рекламы" с компонент высоты

повышенные записи со всеми терминами, набранными пользователем (упорядочены случайным образом)

простой запрос AND к рекламному индексу

повышенные записи слюбой термин, набранный пользователем (упорядоченный случайным образом)

простой запрос ИЛИ по рекламному индексу

продвигаемых записей, найденных в результате поиска по основанию (упорядоченный случайным образом)

нормальный поиск (с основами) в индексе рекламы.

повышенные записи, найденные фонетическим поиском (случайным образом).

для этого вам нужно преобразовать запрос и условия с помощью собственного фонетического преобразования.поэтому у вас будет специальное поле phonetic_text, и вам нужно будет запросить его через

q = phonetic_text: "UR G8" (что означает: вы великолепны; -))

свободных записей, упорядоченных в алфавитном порядке (с использованием всех или любого термина, набранного пользователем).

снова обычный поиск через «И» или «ИЛИ» с параметром сортировки

...