Solr 6を使用して検索エンジンを実装しています。私が直面しています問題は...私は言葉を探したときに、私はカフェ9
それは私にこれを返すために探しています、それは最初のいくつかの他の結果を返し、実際のクエリは、例えば数6
であるということです
Solr検索で完全一致が返されない
私は何をしたいが、それは第一位にカフェ9を示すことがあり、その後、カフェ9などの他の結果は完全に一致..です
私はすべてのインデックスを作成していますtext_generalタイプのフィールドとschema.xmlが添付されています。
ありがとうございます。
<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
<!-- in this example, we will only use synonyms at query time
<filter class="solr.SynonymFilterFactory" synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/>
-->
<filter class="solr.ApostropheFilterFactory"/>
<filter class="solr.ShingleFilterFactory" maxShingleSize="5" outputUnigrams="true"/>
<filter class="solr.LowerCaseFilterFactory"/>
</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.ApostropheFilterFactory"/>
<!-- <filter class="solr.ShingleFilterFactory" maxShingleSize="5" outputUnigrams="true"/> -->
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
完全一致を検索する場合は、文字列をfieldTypeとして使用するか、キーワードtokenizerを使用してインデックスを作成できます。 –
インデックスをどのようにクエリしていますか? dismax/edismaxを使用している場合は、フィールドに 'pf' /' pf2'ウェイトを適用してみてください。あなたは名前フィールドだけを照会していますか? – MatsLindh
はい名前フィールドを照会しています。 localhost:8983/solr/abc/select?q = name :(カフェ9)...これは検索のための私のURLです。 –