Подстроки совпадают в SOLR - PullRequest
7 голосов
/ 22 июня 2010

Кажется, я не могу понять, как найти совпадения подстроки с помощью SOLR, я выяснил совпадения на основе префикса, чтобы я мог получить ветчину для гамбургера.

Как мне найти поиск "гамбургер", чтобы соответствовать гамбургеру? Я пробовал бургер , но это выдало ошибку '*' или '?' не допускается в качестве первого символа в WildcardQuery.

Как сопоставить подстроки с помощью SOLR?

Ответы [ 3 ]

9 голосов
/ 31 октября 2012

Если кто-то окажется здесь после поиска «apachesolr substring», для этого есть более простое решение: https://drupal.stackexchange.com/a/27956/10419 (из https://drupal.stackexchange.com/questions/26024/how-can-i-make-search-with-a-substring-of-a-word)

Добавить ngramfilter в определение типа текста вschema.xml в каталоге конфигурации solr.

<fieldType name="text" class="solr.TextField" positionIncrementGap="100">
  <analyzer type="index">
    <filter class="solr.EdgeNGramFilterFactory" minGramSize="3" maxGramSize="25" />
3 голосов
/ 23 июня 2010

Как указывалось ранее в ссылка , вы можете использовать начальные символы подстановки с edismax (ExtendedDismaxQParser).Просто попробуйте, чтобы убедиться, что он достаточно быстрый.

Дополнительная информация о вышеупомянутой обратной строке также может быть найдена здесь: solr.ReversedWildcardFilterFactory

3 голосов
/ 22 июня 2010

Вы можете включить это, но это будет очень ресурсоемким (например, поиск SuffixQuery).

См .: http://lucene.472066.n3.nabble.com/Leading-Wildcard-Search-td522362.html

Цитирование списка рассылки: Обход?Представьте себе создание второго индекса (или добавление другого поля) со всеми терминами, написанными в обратном направлении.

=>

См. Добавление ReverseStringFilter https://issues.apache.org/jira/browse/LUCENE-1398

и Поддержкадля эффективного поиска ведущих символов подстановки: https://issues.apache.org/jira/browse/SOLR-1321

В данный момент Issue.apache.org, кажется, не работает.Попробуйте использовать, например, кеш Google.

...