我正在使用solr 3.6.2。搜索傳遞的前綴,後綴和中間的單詞。在Solr中查找完全匹配3.6.2
如果我搜索"20%"
,那麼在搜索結果中是"20%"
,"* 0%"
和"* 20 *"
的表達式。如何從搜索結果"0% *"
和"* 20 *"
中排除並僅保留精確匹配"20%"
?文件下面是schema.xml中:
<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<charFilter class="solr.PatternReplaceCharFilterFactory"
pattern="[.-_]" replacement=" ">
<tokenizer class="solr.StandardTokenizerFactory">
<filter class="solr.SynonymFilterFactory" synonyms="index_synonyms.txt" ignoreCase="true" expand="false">
<filter class="solr.EdgeNGramFilterFactory" minGramSize="3" maxGramSize="15" side="back">
<filter class="solr.EdgeNGramFilterFactory" minGramSize="3" maxGramSize="15" side="front">
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1">
<filter class="solr.LowerCaseFilterFactory">
<filter class="solr.RemoveDuplicatesTokenFilterFactory">
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory">
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt">
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true">
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="1">
<filter class="solr.LowerCaseFilterFactory">
</analyzer>
</fieldType>
您正在使用哪個搜索處理程序(如'/ select')?如果你使用的是自定義的,你可以在你的'solrconfig.xml'中顯示這個條目。 – Kevin
以我solrconfig.xml中: requestHandler名稱= 「/選擇」 類= 「solr.SearchHandler」 LST名稱= 「默認」 STR名稱= 「echoParams」>顯式 STR INT名稱= 「行」> 10 int str name =「df」> text str /lst – user2995292
重新格式化問題中的代碼。代碼目前有點搞砸了。 Tidier代碼將幫助人們更好地理解你的問題。 – Kevin