Как искать в нескольких полях в Lucene, используя синтаксис запроса? - PullRequest
5 голосов
/ 28 ноября 2011

Я ищу индекс lucene и создаю поисковые запросы, например

field1:"hello" AND field2:"world"

, но я бы хотел найти значение в любом поле, а также значения в определенных полях втот же запрос, т.е.

field1:"hello" AND anyField:"world"

Может кто-нибудь сказать мне, как я могу искать по всем проиндексированным полям таким образом?

Ответы [ 2 ]

6 голосов
/ 16 декабря 2011

На основании ответов, которые я получил на этот вопрос: Влияние значения повторения для нескольких полей в Lucene ...

Я могу поместить один и тот же поисковый термин в несколько полей и, следовательно, создать поле «все», в которое я помещаю все. Таким образом, я могу создать запрос вроде ...

field1:"hello" AND all:"world"

Это, кажется, работает очень хорошо, предотвращает необходимость в огромных поисковых запросах, и, очевидно, влияние на производительность минимально.

2 голосов
/ 28 ноября 2011

Булевы (ИЛИ) запросы с условием для каждого поля используются для поиска в нескольких полях. MultiFieldQueryParser также сделает это, но поля по-прежнему необходимо перечислять.Там нет неявных «все» поля;но IndexReader.getFieldNames может их получить.

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