SOLRクエリの各用語に対して "startsWith"検索を有効にするだけでなく、フレーズ検索(引用符で囲んで)も実行できるようにします。 接頭辞検索では、最初に接尾辞「*」を追加しました。このソリューションは、プレフィックス検索とフレーズ検索の両方を可能にしますが、ワイルドカード検索であり、ワイルドカード検索ではその用語を分析しないため、このソリューションが嫌いです。Solr 3.4.0でEdegeNGram解析とフレーズ検索の両方をサポート
したがって、EdgeNgramFilterFactoryはインデックス作成時のみ有効になりました。プレフィックス検索は正常に機能しますが、正確なフレーズ検索はもう機能しません。
EdgeNgramが有効な場合でもフレーズ検索を有効にする方法を知っている人はいますか?
ありがとうございます!
はここでまた、私はWordDelimiterFilterFactoryを使用するときにハイライトはもう十分に機能していないことに気づいたのschema.xml
<fieldType name="text" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/>
<filter class="solr.EdgeNGramFilterFactory" minGramSize="1" maxGramSize="50" side="back" />
<filter class="solr.EdgeNGramFilterFactory" minGramSize="1" maxGramSize="50" 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.KeywordMarkerFilterFactory" protected="protwords.txt"/>
<filter class="solr.PorterStemFilterFactory"/>
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="1"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/>
<filter class="solr.PorterStemFilterFactory"/>
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
</analyzer>
</fieldType>
です。
を分析されているクエリを防ぐことはできません。 –