2016-04-14 29 views
1

大文字小文字を区別しない方法でクエリ(fq)をフィルタリングする必要があります。 オンラインで見るすべてのソリューションは、schema.xmlファイルの編集と関係があります。Solr大文字小文字を区別しないクエリ

私はスキーマの少ないSolr(データ駆動型設定セット)を使用しているので、このファイルはありません。

どうすればこの結果を得ることができますか? 多くの感謝!

+1

これは、managed-schema.xmlを使用していることを意味しますか? –

+0

No. 私のコアにはこのファイルがありません。このファイルはconfig-setsディレクトリ(デフォルト)でしか見ることができません – yuz

+0

あなたはどのフィールドを探していますか?そのフィールドのfieldTypeを知っていますか? –

答えて

4

managed-schema fileで定義されているdynamicFieldを使用しているため。 あなたのフィールドとしてパターン

を使用しているにもname_ssとして*_ssパターンで終わります。 ここでは、フィールド*_ssにタイプ文字列があり、これらは分析されず、そのまま索引付けされます。

は、私はあなたがあなたがname_txtとしてフィールドを持つことになります。ここtext_generalタイプはmanaged-schemaファイル

<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" /> 
     <filter class="solr.LowerCaseFilterFactory"/> 
     <charFilter class="solr.PatternReplaceCharFilterFactory" 
     pattern="-" replacement=""/> 
     <charFilter class="solr.PatternReplaceCharFilterFactory" 
     pattern="." replacement=""/> 
    </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.LowerCaseFilterFactory"/> 
    </analyzer> 
</fieldType> 

に以下のように構築されdynamicField

<dynamicField name="*_txt" type="text_general" indexed="true" stored="true"/> 

の下に使用することをお勧めします。

関連する問題