Как работает q.alt param, когда задано q - PullRequest
0 голосов
/ 12 апреля 2020

Я сослался на этот раздел

Я сделал q пустым и добавил запрос q.alt=NAME:tokyo с парсером dismax. Это сработало, как и ожидалось.

Я добавил запрос в q как NAME:london Ничего не вернулось. Я ожидал вернуть документы, которые соответствуют NAME:london

Чтобы выяснить причину, я включил debugQuery, и запрос переведен как +DisjunctionMaxQuery:(((NAME:name:london) ^ 1.0) ())

Я не мог понять этот перевод. Может ли кто-нибудь уточнить это, пожалуйста?

1 Ответ

0 голосов
/ 12 апреля 2020

Анализатор dismax не поддерживает синтаксис Lucene (field:value). edismax (e означает расширенный анализатор Dismax), однако, делает.

Вместо этого используйте синтаксический анализатор edismax, если вы хотите предоставлять запросы как обычный синтаксис запросов lucene. В целом, однако, было бы лучше иметь запрос как london - то есть q=london, а затем использовать qf, чтобы сообщить edismax, какие поля вы хотите искать - qf=NAME.

Ваша строка запроса тогда делает стать q=london&qf=NAME&defType=edismax - однако этот запрос будет вести себя так же, используя и более старый анализатор dismax.

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