インデックスを作成しているキーワードフィールドに対してNGramフィルタリングを有効にしています。このフィールドには、次のカンマ区切りの用語が含まれています。
wwwdebenhams.com、ebenhams.com、dbenhams.com、deenhams.com、debnhams.com、debehams.com、debenams.com、debenhms.com、debenhas.com、debenham.com、debenhams.ocm、debenhams.con、debenhams。 comn、debenhams.copm、debenhams.comm、debenhams.coom、debenhams.xom、debenhams.cpm、ebenhams.com、dbenhams.com、deenhams.com、debnhams.com、debehams.com、debenams.com、debenhms.com、 debenhas.com、debenham.com、
コアのスキーマは次のようになります。
<?xml version="1.0" ?>
<schema name="merchant" version="1.0">
<types>
<!--
Default numeric field types. For faster range queries, consider the tint/tfloat/tlong/tdouble types.
-->
<fieldType name="int" class="solr.TrieIntField" precisionStep="0" positionIncrementGap="0"/>
<fieldType name="text_lowercase_ngram" class="solr.TextField" termPositions="false" omitNorms="true">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.WordDelimiterFilterFactory"
splitOnCaseChange="0"
splitOnNumerics="0"
stemEnglishPossessive="0"
generateWordParts="1"
generateNumberParts="1"
catenateWords="0"
catenateNumbers="0"
catenateAll="0"
preserveOriginal="1"
types="wdfftypes.txt"
/>
<filter class="solr.NGramFilterFactory" minGramSize="3" maxGramSize="20"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.WordDelimiterFilterFactory"
splitOnCaseChange="0"
splitOnNumerics="0"
stemEnglishPossessive="0"
generateWordParts="1"
generateNumberParts="1"
catenateWords="0"
catenateNumbers="0"
catenateAll="0"
preserveOriginal="1"
types="wdfftypes.txt"
/>
<filter class="solr.NGramFilterFactory" minGramSize="3" maxGramSize="20"/>
</analyzer>
</fieldType>
<fieldType name="text_exact" class="solr.TextField">
<analyzer>
<tokenizer class="solr.KeywordTokenizerFactory"/>
</analyzer>
</fieldType>
</types>
<fields>
<!-- Merchant Fields -->
<field name="id" type="int" indexed="true" stored="true" required="true"/>
<field name="site_id" type="int" indexed="true" stored="true" required="true"/>
<field name="title" type="text_lowercase_ngram" indexed="true" stored="true"/>
<field name="url" type="text_exact" indexed="true" stored="true"/>
<field name="keywords" type="text_lowercase_ngram" indexed="true" stored="true" />
<field name="description" type="text_lowercase_ngram" indexed="true" stored="true" />
<field name="type" type="int" indexed="true" stored="true"/>
<field name="popularity" type="int" indexed="true" stored="true"/>
<field name="category" type="text_exact" indexed="true" stored="true" multiValued="true"/>
</fields>
<!-- field to use to determine and enforce document uniqueness. -->
<uniqueKey>id</uniqueKey>
<!-- field for the QueryParser to use when an explicit fieldname is absent -->
<defaultSearchField>title</defaultSearchField>
<!-- SolrQueryParser configuration: defaultOperator="AND|OR" -->
<solrQueryParser defaultOperator="OR"/>
'deb'を検索すると、スコア6.4406505の一致するドキュメントが返されます。'debe'、'deben'、'debenh'、および'debenha'を検索しても、結果は返されません。'debenham'を検索すると、スコアが41.740173の一致するドキュメントが返され、'debenhams'がスコアが111.30711のドキュメントが返されます。
上記の各クエリに一致する用語を表示するクエリアナライザを使用してみましたが、結果に一致するドキュメントが返されません。正の一致であるかどうかに関係なく、対応するスコアを持つすべてのドキュメントを返すことができ、なぜそれらが返されないのかをよりよく理解する方法はありますか?