2 回答

TA貢獻(xiàn)1752條經(jīng)驗(yàn) 獲得超4個(gè)贊
如果你想按詞的部分搜索,你需要申請(qǐng),例如,N-Gram Tokenizer, <tokenizer class="solr.NGramTokenizerFactory" minGramSize="3" maxGramSize="10"/>
例如。
在: "bicycle"
出去: "bicy", "bicyc", "icyc", "icycl", "cycl", "cycle", "ycle"
在這種情況下,您將能夠按單詞部分進(jìn)行搜索。您需要為兩個(gè)分析器應(yīng)用 NGramTokenizerFactory:
<fieldType name="custome_field_type" class="solr.TextField" positionIncrementGap="100" multiValued="false">
<analyzer type="index">
<tokenizer class="solr.NGramTokenizerFactory" minGramSize="3" maxGramSize="10"/>
<filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.NGramTokenizerFactory" minGramSize="3" maxGramSize="10"/>
<filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
如果您使用上述字段類型,那么在管理工具上的相同分析如下。
您還可以嘗試以下查詢分析器。這一切都取決于您的要求。
<analyzer type="query">
<tokenizer class="solr.KeywordTokenizerFactory"/>
</analyzer>
您可以修改或添加字段類型schema.xml并將其應(yīng)用于您的字段。完成后重新啟動(dòng)服務(wù)器,重新索引數(shù)據(jù)。如果數(shù)據(jù)匹配,您可以使用 solr 管理工具驗(yàn)證您的字段的上述 fieldType。
我使用了以下字段類型并使用 solr 工具進(jìn)行了分析。
這是字段類型:
<fieldType name="custome_field_type" class="solr.TextField" positionIncrementGap="100" multiValued="false">
<analyzer type="index">
<tokenizer class="solr.NGramTokenizerFactory" minGramSize="3" maxGramSize="10"/>
<filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
請(qǐng)從 solr 管理工具中找到相同的分析。

TA貢獻(xiàn)1803條經(jīng)驗(yàn) 獲得超3個(gè)贊
在復(fù)雜的短語查詢分析器支持詞組內(nèi)嵌通配符。在您的情況下,附加inOrder=true
到參數(shù)將為您提供所需的行為。
您應(yīng)該注意一些限制:
性能對(duì)與模式關(guān)聯(lián)的唯一術(shù)語的數(shù)量很敏感。例如,搜索“a*”將為索引中以單個(gè)字母“a”開頭的指示字段的所有術(shù)語形成一個(gè)大的 OR 子句(技術(shù)上是一個(gè)包含許多術(shù)語的 SpanOr)。將通配符限制為至少兩個(gè)或最好三個(gè)字母作為前綴可能是謹(jǐn)慎的。允許非常短的前綴可能會(huì)導(dǎo)致返回許多低質(zhì)量的文檔。
請(qǐng)注意,它還支持前導(dǎo)通配符“*a”以及隨之而來的性能影響。在索引時(shí)間分析中應(yīng)用 ReversedWildcardFilterFactory 通常是一個(gè)好主意。
- 2 回答
- 0 關(guān)注
- 323 瀏覽
添加回答
舉報(bào)