Сходство предложений в Apache Solr - PullRequest
1 голос
/ 28 марта 2019

Я использую Solr для сопоставления фраз.

Данные индекса:

id:1
keyword:"simple  text|text with simple word |simple word text"
group:group1

id:2
keyword:"complex word| words with adjectives| text with adjective"
group:group2 

Я проиндексировал фразы, разделенные конвейером, которые подпадают под 1 группу

Запрос:

"Document with simple text"

Когда я выполняю поиск по вышеуказанному запросу, мой результат поиска должен быть

id:1
keyword:"simple  text
Group: Group1

, поскольку

Запрос содержитвсе слова в вышеприведенной фразе, то есть: "простой" и "текст"

Может кто-нибудь сказать, как я могу сделать это в solr?

1 Ответ

0 голосов
/ 29 марта 2019

Используйте логический оператор ИЛИ между поисковыми терминами:

 Document OR with OR simple OR text

Это не гарантирует порядок совпадений слов, но разрешит частичное совпадение.

Если вы используете анализатор запросов DisMax,Вы также можете указать минимальную нижнюю границу соотношения соответствующих терминов (например, вы всегда хотите, чтобы соответствовало не менее 50% ваших терминов).Для параметра mm: https://lucene.apache.org/solr/guide/6_6/the-dismax-query-parser.html#TheDisMaxQueryParser-Themm_MinimumShouldMatch_Parameter

Кстати, цель понятия трубы (|) в вашем поле keyword неясна.Вы намерены хранить значения в массиве?Для этого используйте параметр multiValued=true в этом поле и сохраняйте каждое значение отдельно.

...