Lucene отсортировал поиск с пробелами и дефисами - PullRequest
0 голосов
/ 21 февраля 2020

Lucene 8.0.0

У меня есть поле, которое я индексирую следующим образом:

doc.add(new SortedDocValuesField("nameS", new BytesRef(name.toLowerCase())));
doc.add(new StoredField("name", name));

Значения имени выглядят примерно так:

London-UK
Bristol-UK
Bristol-AUS
New York-USA
Washington-USA

В них есть пробелы и дефисы. Однако я не могу заставить свой поиск вести себя - похоже, он сдается, когда попадает в пробел или дефис.

Анализатор, который я использую для индексации и поиска, - StandardAnalyser.

Я использую код, подобный следующему:

String escapedSearch = QueryParserUtil.escape(search.toLowerCase())
Query query = qp.parse("nameS:" + escapedSearch + "*");
TopFieldDocs results = searcher.search(query, 100, new Sort(new SortField("nameS", Type.STRING)));

Где я ошибаюсь, чтобы поиск работал с пробелами и дефисами? Кроме того, я назвал .toLowerCase() по имени при индексации и поиске, это стандартная практика?

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