Lucene.NET забивает точные совпадения на 100 и не точные ниже 100 - PullRequest
0 голосов
/ 17 мая 2019

В надежде на легкий ответ, прежде чем я углублюсь в пользовательский подсчет очков Lucene.

Я использую Lucene.NET v4.8.0-beta00005.

Сейчас я использую StandardAnalyzer для индексации, поэтому я предполагаю, что он не выполняет никаких преобразований в терминах, просто удаляет стоп-слова.

При поиске я анализирую текст поиска с той же StandardAnalyzer и составляю комбинацию ИЛИ BooleanQueryFuzzyQuery для каждого термина.

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

В нашей существующей реализации с использованием полнотекстового поиска SQL Server у нас есть простой настраиваемый алгоритм оценки, который бысравнить ключевые слова из поискового запроса с ключевыми словами каждого соответствия на основе процентного соотношения совпадающих ключевых слов от всех ключевых слов соответствующего документа и сВзвешивание, основанное на длине кеворда, будет вычислять счет.Поэтому, когда все слова в документе точно совпадают (в любом порядке) со словами в запросе, результат будет равен 100.

Есть ли простой способ добиться аналогичного поведения с BooleanQuery из FuzzyQueryв Lucene.NET?

...