Чтобы получить «содержит» все функции, вы можете использовать:
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.EdgeNGramFilterFactory" minGramSize="1" maxGramSize="100" side="back"/>
<filter class="solr.LowerCaseFilterFactory" />
в качестве анализатора индекса.
Это создаст нграммы для каждого слова, разделенного пробелами в вашем поле.Например:
"Index this!" => x, ex, dex, ndex, index, !, s!, is!, his!, this!
Как вы видите, это значительно расширит ваш индекс, но если вы сейчас введете запрос, например:
"nde*"
, он будет совпадать с "ndex", что даст вам хит.
Используйте этот подход осторожно, чтобы убедиться, что ваш индекс не становится слишком большим.Если вы увеличите minGramSize или уменьшите maxGramSize, это не приведет к расширению индекса как к целому, а уменьшит функциональность «содержит».Например, установка minGramSize = "3" потребует, чтобы в вашем запросе содержалось не менее 3 символов.