問題があり、どうすればよいかわかりません...
これは非常に簡単です。SORL で作成された 2 つのインデックスがあります。
"Scholastic Reader, Level 2 >" "Scholastic Reader, Level 3 >"
(記号 > は文字列の末尾に移動します)
検索 1: 「Scholastic Reader, Level」で検索すると、サービスは両方のインデックスを返します。これは良いことです。
XML 応答:
<response>
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">2</int>
<lst name="params">
<str name="indent">on</str>
<str name="start">0</str>
<str name="q">type:masterseries AND title:("Scholastic Reader, Level")</str>
<str name="version">2.2</str>
<str name="rows">10</str>
</lst>
</lst>
<result name="response" numFound="2" start="0">
<doc>
<str name="id">118</str>
<arr name="title">
<str>Scholastic Reader, Level 2 ></str>
</arr>
<str name="type">masterseries</str>
<str name="uuid">3bf5b10c-a286-4ad0-9c63-bb402f57a7ed</str>
</doc>
<doc>
<str name="id">118</str>
<arr name="title">
<str>Scholastic Reader, Level 3 ></str>
</arr>
<str name="type">masterseries</str>
<str name="uuid">cdb19c28-0988-4375-acf0-916bc6664055</str>
</doc>
</result>
</response>
検索 2: "Scholastic Reader, Level 3" で検索すると、"Scholastic Reader, Level 3 >" GREAT! が返されます。
クエリ文字列: type:masterseries AND title:("Scholastic Reader, Level 3") XML 応答:
<response>
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">2</int>
<lst name="params">
<str name="indent">on</str>
<str name="start">0</str>
<str name="q">type:masterseries AND title:("Scholastic Reader, Level 3")</str>
<str name="version">2.2</str>
<str name="rows">10</str>
</lst>
</lst>
<result name="response" numFound="1" start="0">
<doc>
<str name="id">118</str>
<arr name="title">
<str>Scholastic Reader, Level 3 ></str>
</arr>
<str name="type">masterseries</str>
<str name="uuid">cdb19c28-0988-4375-acf0-916bc6664055</str>
</doc>
</result>
</response>
しかし、ここで奇妙なことが起こります
検索 3: 「Scholastic Reader, Level 2」、または正確な文字列「Scholastic Reader, Level 2 >」で検索すると、「NOTHING」が返されます。
クエリ文字列: type:masterseries AND title:("Scholastic Reader, Level 2") XML 応答:
<response>
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">2</int>
<lst name="params">
<str name="indent">on</str>
<str name="start">0</str>
<str name="q">type:masterseries AND title:("Scholastic Reader, Level 2")</str>
<str name="version">2.2</str>
<str name="rows">10</str>
</lst>
</lst>
<result name="response" numFound="0" start="0"/>
</response>
1、4、5、6 のような数字のインデックスを作成しても機能しますが、レベル「2」の文字列は機能しません。
ご協力いただきありがとうございます。
アップデート:
schema.xml ファイルに構成を追加します。
<fieldType name="text_en" class="solr.TextField"
positionIncrementGap="100">
<analyzer type="index">
<charFilter class="solr.HTMLStripCharFilterFactory" />
<tokenizer class="solr.StandardTokenizerFactory" />
<filter class="solr.ISOLatin1AccentFilterFactory" />
<filter class="solr.StopFilterFactory"
ignoreCase="true" words="lang/stopwords_en.txt"
enablePositionIncrements="false" />
<filter class="solr.LowerCaseFilterFactory" />
<filter class="solr.EnglishPossessiveFilterFactory" />
<filter class="solr.KeywordMarkerFilterFactory"
protected="protwords.txt" />
<filter class="solr.PorterStemFilterFactory" />
</analyzer>
<analyzer type="query">
<charFilter class="solr.HTMLStripCharFilterFactory" />
<tokenizer class="solr.StandardTokenizerFactory" />
<filter class="solr.SynonymFilterFactory"
synonyms="synonyms.txt" ignoreCase="true" expand="true" />
<filter class="solr.StopFilterFactory"
ignoreCase="true" words="lang/stopwords_en.txt"
enablePositionIncrements="false" />
<filter class="solr.LowerCaseFilterFactory" />
<filter class="solr.ISOLatin1AccentFilterFactory" />
<filter class="solr.EnglishPossessiveFilterFactory" />
<filter class="solr.KeywordMarkerFilterFactory"
protected="protwords.txt" />
<filter class="solr.PorterStemFilterFactory" />
</analyzer>
</fieldType>