0
我想寫一個特定的字段類型,其工作方式如下面的示例所示:
假設我們有一個名稱:foo MooBar (f00B2r)
;
Solr searchField模式的單個匹配
- 「F」=>
foo MooBar (f00B2r)
(和其他人用 「F」) - 「富moob」=>
foo MooBar (f00B2r)
(和其他與 「富moob」 等) - 「富(F0" =>
foo MooBar (f00B2r)
- 「moobar F」=>
foo MooBar (f00B2r)
- 「(f00b2r)」=>
foo MooBar (f00B2r)
- 「酒吧」=>無
- 「moobar○」=>無
- 「moob富」=>無
我的問題:
- 如果我搜索 「moobar F」 我會得到無;
- 如果我搜索「(f00b2r)」,我將無法獲得;
我的字段類型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>
附:
對不起,我的英文和謝謝;
我不知道第一個問題,但就第二個問題而言 - 您是否嘗試過轉義括號?例如,查詢'(foob2r \)'而不是'(foob2r)'? – 2012-03-25 02:28:42