Сфинкс частичный поиск слова, версия 2.2.4

Я использую Sphinx для предоставления веб-страницы поиска для огромного набора данных, недавно я обновил Sphinx с v2.1.8 до v2.2.4

У меня были некоторые проблемы в конфигурационном файле, одна из них — это то, что опция enable_star была удалена, что повлияло на ожидаемые результаты на моей странице поиска, поэтому, если поиск по ‘rea’ не вернет ‘real madrid’, пока я не завершу ввод «Реальный», та же проблема на словах заканчивается «Мадрид».

Ожидаемые результаты, если я искал «сумасшедший»:

  • Реал Мадрид
  • Атлантский Мадрид
  • Mad-Croc
  • Madila
  • безумный бла

В моем случае я получаю «Mad-Croc» и «Mad Bla».

Вот часть моего конфигурационного файла:

docinfo = extern
mlock = 0
morphology = stem_en
min_word_len = 1
expand_keywords = 1
dict = keywords

PHP-код:

$_sphinx = new SphinxClient();

$_sphinx->SetServer('............', '....');

$_sphinx->SetMatchMode(SPH_MATCH_ANY);
$_sphinx->SetFieldWeights(array('auther_name' => 50));
$_sphinx->SetArrayResult(true);
$_sphinx->SetSortMode(SPH_SORT_EXTENDED2, 'cat_priority DESC, @weight DESC');

//////////////////
$_result = $_sphinx->Query($searchTerm . '*');

может ли любое тело искать это.

2

Решение

Вы, кажется, не имеете min_prefix_len настройте индекс, предложите добавить его.

Хотя не уверен, как ваш индекс когда-либо работал, как min_prefix_len, потребуется для enable_star=0 иметь эффект.

Это должно позволить expand_keywords творить свою магию. При какой постановке вопроса предложите удалить * в конце запроса. Который влияет только на последнее введенное слово, и * должен автоматически добавляться expand_keywords настройка в любом случае.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]