Я хотел бы написать конкретный fieldType, который будет работать, как показано в примере ниже:Скажем, у нас есть имя: foo MooBar (f00B2r)
;
- "f" =>
foo MooBar (f00B2r)
(и другие с "f") - "foo moob" =>
foo MooBar (f00B2r)
(и другие с "foo moob"и т. д.) - "foo (f0" =>
foo MooBar (f00B2r)
- "moobar f" =>
foo MooBar (f00B2r)
- "(f00b2r)" =>
foo MooBar (f00B2r)
- "bar" => нет
- "moobar o" => нет
- "moob foo" => нет
Мои проблемы:
- Если я буду искать "moobar f", я не получу ничего;
- Если я буду искать "(f00b2r)", я не получу ничего;
my fieldType в solr / conf / schema.xml:
<fieldType name="frontMatch" class="solr.TextField" positionIncrementGap="255">
<analyzer type="index">
<tokenizer class="solr.LowerCaseTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.EdgeNGramFilterFactory" minGramSize="1" maxGramSize="255" side="front" />
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.EdgeNGramFilterFactory" minGramSize="1" maxGramSize="255" side="front" />
</analyzer>
</fieldType>
PS Извините за мой английский и спасибо;