フィールド fullName を持つ 2 つのユーザー ドキュメントをインデックス化しました。
fullname=Matt Cain
fullName=Matt Harvey
私が検索するとき
fullName:Matt Harvey
用語 Matt Cain はより高いスコアを取得しますが、検索すると
fullName:matt OR fullName:harvey
次に、マット・ハーベイが最初に来ます。
クエリを手動で分割せずにsolrが正しく処理するように、schema.xmlを正しく構成するにはどうすればよいですか?
これが私の現在のschema.xmlからのいくつかの関連部分です
<fields>
<!-- general -->
<field name="id" type="string" indexed="true" stored="true" multiValued="false" required="true"/>
<field name="type" type="text_general" indexed="true" stored="true" multiValued="false"/>
<field name="name" type="text_general" indexed="true" stored="true" multiValued="false"/>
<field name="_version_" type="long" indexed="true" stored="true"/>
<field name="firstName" type="text_general" indexed="true" stored="true"/>
<field name="lastName" type="text_general" indexed="true" stored="true"/>
<field name="fullName" type="text_general" indexed="true" stored="true"/>
<field name="email" type="text_general" indexed="true" stored="true"/>
<field name="workPlace" type="text_general" indexed="true" stored="true"/>
<field name="geoArea" type="text_general" indexed="true" stored="true"/>
<field name="gender" type="text_general" indexed="true" stored="true"/>
<field name="tags" type="text_general" indexed="true" stored="true" multiValued="true"/>
<field name="birthDate" type="date" indexed="true" stored="true"/>
<field name="followersCount" type="long" indexed="true" stored="true"/>
<field name="featuredLevel" type="int" indexed="true" stored="true" multiValued="false"/>
<field name="fbId" type="text_general" indexed="false" stored="true"/>
<field name="imageUrl" type="text_general" indexed="false" stored="true"/>
<field name="text" type="text_general" indexed="true" stored="false" multiValued="true"/>
<dynamicField name="*" type="ignored" multiValued="true"/>
</fields>
....
<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" enablePositionIncrements="true" />
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
<filter class="solr.NGramFilterFactory" minGramSize="2" maxGramSize="15"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
質問に答えるために必要な他の部分がある場合は、喜んで投稿します。全体を投稿したくありませんでした..ありがとう