2012-02-10 7 views
2

で区切られた単語を含む引用符で囲まれたときに動作していないここに私の検索クエリです:Solrがクエリーはスペース

name_text_partial_all:「Hello World」の

フィールドには、一つの文書のインデックスにこれらの単語を持っています:こんにちは、世界

は、ここでは、このタイプのための私のスキーマ定義です:

<fieldtype class="solr.TextField" name="text_partial_all" positionIncrementGap="100" omitNorms="false" stored="false"> 
    <analyzer type="index"> 
    <tokenizer class="solr.WhitespaceTokenizerFactory"/> 
    <filter class="solr.PatternReplaceFilterFactory" pattern="[^\d\sa-zA-Z]" replacement=""/> 
    <filter class="solr.StandardFilterFactory"/> 
    <filter class="solr.LowerCaseFilterFactory"/> 
    <filter class="solr.NGramFilterFactory" minGramSize="2" maxGramSize="30"/> 
    </analyzer> 
    <analyzer type="query"> 
    <tokenizer class="solr.WhitespaceTokenizerFactory"/> 
    <filter class="solr.PatternReplaceFilterFactory" pattern="[^\d\sa-zA-Z]" replacement=""/> 
    <filter class="solr.LengthFilterFactory" min="2" max="30" /> 
    <filter class="solr.LowerCaseFilterFactory"/> 
    <filter class="solr.StandardFilterFactory"/> 
    </analyzer> 
</fieldtype> 

これは、文書を見つけていません。任意の手掛かりはなぜですか?

+0

この 'name_text_partial_all:hello world"のように検索していますか、この 'text_partial_all:hello world ''のようにしていますか? – javanna

答えて

1

<filter class="solr.NGramFilterFactory" minGramSize="2" maxGramSize="30"/>は、別々の位置にあるngramトークンを生成します。
Hello World NGramFilterFactoryを通過するとき、HelloとWorldのトークンは別々の位置に置かれます。
Hello WorldのトークンHelloが位置10にあり、世界が位置20にあります。
正確なフレーズname_text_partial_all:"hello world"を検索するクエリは機能しません。name_text_partial_all:"hello world"~9は動作します。
同じ位置を維持するには、傾斜フィルタまたは位置フィルタを使用する必要があります。