Поисковое выражение Lucene с escape-символами и зарезервированными словами (TO)? - PullRequest
0 голосов
/ 02 июля 2019

C # Framework 4.6.1, проект MVC с использованием Kentico 12 (Lucene.Net 3.0.3). Это продолжение предыдущего вопроса, который с тех пор был решен ( Использование неправильного escape-символа для лексической ошибки Lucene в строке 1: Cannot Parse Encountered. Kentico 12 ), но теперь у меня есть новый, и, вероятно, связанный , выпуск.

В моем индексе я выполняю поиск по полю (по диаметру ) для следующей текстовой фразы, и она должна возвращать только одну строку:

.25" to .6" (6.35mm to 15.24mm)

Я избегаю всей этой фразы следующим образом:

diameter:\\((.25\\" to .6\\" \\(6.35mm to 15.24mm\\)))

Технически это работает, но возвращает кучу строк, включая единственную запись, которую я хочу. Фактическая строка, которую я хочу, указана первой и имеет (безусловно) самый высокий балл. При этом я не могу просто взять верхнюю 1, и это должно быть только возвращение одного элемента.

Большой вопрос: Как получить точное совпадение с этим поисковым выражением? Это как-то связано с используемым значением TO ? Может ли Люсен думать, что это диапазон? Добавить «+»? Кроме того, я избежал слова TO , используя \ to и \\ до , и ни один из них не изменяет набор результатов. Мысли о том, как это исправить?

Спасибо за вашу помощь!

...