Lucene BooleanQuery равно / в - PullRequest
       10

Lucene BooleanQuery равно / в

2 голосов
/ 24 февраля 2010

Я ищу в Lucene с оператором "равно", реализованным как:

return new TermQuery(new Term(getName(), getValue()));

для вейла, как: customerID: YADA-UT-08ec5de9-8813-4361-be88-55695ddfaa00

Это работает.

НО, если я использую оператор "in", реализованный с помощью BooleanQuery, как;

final BooleanQuery booleanQuery = new BooleanQuery();
for (final String aValue : value) {
    booleanQuery.add(new TermQuery(new Term(getName(), aValue)), BooleanClause.Occur.SHOULD);
}

он не найдет ни одного клиента с YADA-UT-08ec5de9-8813-4361-be88-55695ddfaa00

После многих испытаний я предполагаю, что проблема может быть в длине 'YADA-UT-08ec5de9-8813-4361-be88-55695ddfaa00' или тире. (я использую токен, чтобы сохранить его в БД) при использовании с BooleanQuery.

Любая подсказка?

РЕДАКТИРОВАТЬ: Что странно в том, что: - это работает с "in" (логический запрос): 25c20c21-bd88-4a6d-aa02-209b5fb6fb11 - это не работает с ним: YADA-UT-08ec5de9-8813-4361-be88-55695ddfaa00

Решение найдено: слова люцены были проиндексированы в нижнем регистре:)

1 Ответ

0 голосов
/ 03 июня 2010

Странное решение для меня, но ... вот оно:)

слова люцена были проиндексированы как нижние case:)

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