запрос функции solr на примере - PullRequest
0 голосов
/ 19 сентября 2018

Может кто-нибудь объяснить на примере, как используется запрос функции Solr.Я не смог найти какой-либо конкретный пример, который показывает разницу в результатах с функциональными запросами и без функциональных запросов.Я хочу что-то с примером URL и что показывает в результате ответа.

1 Ответ

0 голосов
/ 19 сентября 2018

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

Отображение «разницы между запросом с функцией»Запросы и без "на самом деле невозможно, так как они не делают то же самое.Вы выбираете один (или оба) в зависимости от того, что вам нужно.

Принятый пример из справочного руководства. Предположим, у нас есть набор документов, описывающих пользователей, и у этих пользователей есть два поля - mails_read иmails_received.Чтобы получить любого, кто прочитал менее 50% своих писем, мы можем применить запрос фильтра как функцию (с парсером запроса frange) (fq здесь означает запрос фильтра - frange - это то, что делает его запросом функции):

fq={!frange l=0 u=0.5}div(mails_read,mails_received)

В противном случае мы были бы ограничены в получении тех, кто только что прочитал определенный диапазон электронных писем или получил определенный диапазон электронных писем - или нам пришлось бы индексировать значение, которое сохранялосьобновленное значение для mails_read / mails_received каждый раз, когда мы обновляем документ (что является совершенно правильной стратегией и, как правило, более эффективной).

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

bf=recip(ms(NOW/HOUR,mydatefield),3.16e-11,1,1)

Это применяет функцию recip к разнице (выраженной в миллисекундах) междуmydatefield поле и текущий час.

rece : выполняет обратную функцию с rec (x, m, a, b), реализующую a / (m * x + b), где m, a, b - константыи x - любая произвольно сложная функция.

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

_val_:"div(popularity, price)"

.. даст оценку документа на основе результатаделения (что представляют значения, зависит от вас).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...