Как получить результаты, в которых все строки указаны в поисковом запросе - PullRequest
1 голос
/ 09 марта 2011

Я новичок в Lucene.Я пишу поисковую систему для поиска в нашей кодовой базе определенных ключевых слов.У меня есть требование, по которому мне нужна ваша помощь.Скажем, я ищу слово «компьютеры Apple», я бы хотел, чтобы Lucene бросала только те строки, в которых есть «компьютеры Apple» без учета регистра.Но то, что я вижу, это то, что я вижу линии, имеющие компьютеры Apple, линии, имеющие только яблоко, и линии, имеющие только компьютеры.Как мне отфильтровать его, чтобы получить только строки, имеющие яблоко и компьютер.

Ответы [ 2 ]

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

Как предположил Ювал, важно знать, как вы используете Lucene.
Если вы используете его через lucene-java и вам нужны точные результаты фраз (документы, которые содержат только «яблочные компьютеры»), вы можете использовать PhraseQuery .

Пример того, как его составить .

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

Как вы запрашиваете Lucene?В основном то, о чем вы спрашиваете, покрыто созданием запроса с использованием BooleanClause.Occur.MUST .Как именно это сделать, зависит от конструкции вашего запроса: для анализатора запросов по умолчанию вы должны использовать что-то вроде

+ Apple + компьютеры

В то время как при создании запросовпрограммно вы должны использовать ОБЯЗАТЕЛЬНО для каждого термина.

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