2

WordDelimiterFilterFactoryハイフンを含む数字を照会できるように、solr 4.0-BETA を で構成しようとしています。

フィールド値: に追加する場合は「123456-1234」ssn

クエリ:

"123456-1234" <- 動作します (ハイフンあり)
"1234561234" <- 動作しません (ハイフンなし)

ドキュメント(AFAIUI)によると、フィールドタイプにはgenerateNumberPartsとがあるため、一致するはずcatenateNumbersです。

ドキュメントから:

generateNumberParts="1" は、数値サブワードを生成します: "500-42" => "500" "42" catenateNumbers="1" は、連結される数値部分の最大連続を引き起こします: "500-42" => "50042"

http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters#solr.WordDelimiterFilterFactory

私のフィールド:

<fields>
     <field name="ssn" type="text_en_splitting" indexed="true" stored="false" multiValued="false" />
     <field name="ssn_exact" type="string" indexed="true" stored="true" multiValued="false" />
</fields>

<copyField source="ssn" dest="ssn_exact" />
<copyField source="ssn" dest="text" /> 

のフィルターtext_en_splitting:

 <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>

ここで何が欠けていますか?

4

1 に答える 1

1

Solr Admin の下にある分析ツールを使用して、ローカル スキーマに同様のフィールドを作成しました。( http://localhost:8983/solr/#/collection1/analysis- この URL は、solr が実行されていhttp://localhost:8983/て、インデックスに名前が付けられていることを前提としていますcollection1- 必要に応じて変更してください)。

インデックスに値を実行し、フィールド名/フィールドタイプの分析ドロップダウンで選択された text_en_splitting に対してクエリを実行してみました。結果から、値 1234561234 がこのフィールド タイプのインデックス タームとして追加されていないことがわかります。

ただし、text_en_splitting_tight FieldType を使用する場合、ハイフンが削除され、1234561234 がインデックスに追加される用語であるため、必要な動作が生成されます。したがって、次のようにフィールドタイプを切り替えてインデックスを再作成すると、準備が整うはずです。

<fields>
 <field name="ssn" type="text_en_splitting_tight" indexed="true" stored="false" multiValued="false" />
 <field name="ssn_exact" type="string" indexed="true" stored="true" multiValued="false" />
</fields>

<copyField source="ssn" dest="ssn_exact" />
<copyField source="ssn" dest="text" /> 
于 2012-09-21T11:50:29.593 に答える