@GregIv

SPHINX:Как найти все слова запроса в рамках n-слов?

Добрый день!
Сразу пример:
1) Запрос - "мама мыла раму"
2) Условие - длина найденной фразы не должны превышать 7 слов.

Нужен результат:
'...мама мыла раму..' //Длина 3 слова от первого нужного слова, до последнего.
'...мама и папа мыли раму...' //5 слов
'...мама с братом мыли оконную раму...'// 6

НЕ должны найтись тексты с такими содержанием:
'Мама любит сына, хоть он не моет раму' //8 слов
'Маме подарили замечательную раму, но она её не моет' //9 слов

Как это можно сделать? Куда копать, в сторону настройки индексации, или запроса?

P.S.
Принимаю к рассмотрению альтернативные поисковые движки, а также костыли. Время работы поиска не критично т.к. это фоновая задача.

P.P.S.
Придумал ужасный костыль:
1) Получаем сниппеты с "подсветкой" вхождений (sauron.org.ua/post/1113).
2) Считаем кол-во слов от первого подсвеченного слова, до последнего.
3) Фильтруем
  • Вопрос задан
  • 92 просмотра
Решения вопроса 1
tumbler
@tumbler
бекенд-разработчик на python
Proximity distance is specified in words, adjusted for word count, and applies to all words within quotes. For instance, "cat dog mouse"~5 query means that there must be less than 8-word span which contains all 3 words, ie. "CAT aaa bbb ccc DOG eee fff MOUSE" document will not match this query, because this span is exactly 8 words long.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы