Привет, ребята у меня есть вопрос :)Lucene BooleanQuery.Builder Строить не работает
создать BooleanQuery Как это:
BooleanQuery.Builder qry = new BooleanQuery.Builder();
qry.add(new TermQuery(new Term("Name", "Anna")), BooleanClause.Occur.SHOULD);
И если я делать поиск, как это сейчас:
TopDocs docs = searcher.search(qry.build(), hitsPerPage);
Результаты поиска нулевые? Но если я использую этот код:
TopDocs docs = searcher.search(parser.parse(qry.build().toString()), hitsPerPage);
Тогда я получаю правильные результаты? Можете ли вы объяснить мне, почему мне нужно снова разобрать его?
Я использую версию 5.5.0 и имя является TextField
Ah okay Спасибо Очень много :) и где я могу установить Игнорировать Кейс? – Montezuma
Lucene на самом деле не работает таким образом, что вы можете где-то установить игнорировать регистр. Все зависит от вашего анализатора. Большинство анализаторов включают в себя нижний регистр токенов, который будет содержать все. Вы должны убедиться, что ваш запрос выполняется через совместимый анализатор (в идеале такой же), чтобы были созданы соответствующие маркеры. TermQuery не использует анализатор, поэтому вам необходимо выполнить этот шаг заранее, например. используя анализатор запросов, который запускает материал через анализатор (фактически не создавая BooleanQuery). – knutwalker