我在引擎蓋下使用了Solr 5.5.2和Lucene 5.5.2。如何在Lucene/Solr中正確實現我的自定義標記器?
我想要做的是創建我的自定義標記,它通過斜線符號劃分文本。
下面是代碼示例:
public class SlashSymbolTokenizer extends CharTokenizer {
public SlashSymbolTokenizer() {
}
public SlashSymbolTokenizer(AttributeFactory factory) {
super(factory);
}
@Override
protected boolean isTokenChar(int c) {
return c != 47 && c != 92;
}
}
schema.xml中
<fieldType name="string_with_slash_tokenizer" class="solr.TextField" sortMissingLast="true">
<analyzer>
<tokenizer class="tokenizer.SlashSymbolTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
並在索引時間進行現場"color":"Black/white"
應用此標記生成後,我認爲我可以通過查詢進一步的東西與之匹配如"color":"black white"
,但它不起作用..該字段僅匹配初始值"Black/white"
什麼是錯的機智我的實施?你有什麼想法 ?
非常感謝!
如果搜索'顏色會發生什麼:?Black' – root545
@ root545,我得到了它後,我的分詞器已經應用於我!可以通過「黑色」或「白色」標記匹配文檔,但不能同時使用空格而不是斜槓。 – MadCat45