我正在使用 django 1.5 和 haystack 2.1.0。
在其中一个模型上使用自动查询时,我发现了以下行为。
test_search = "charles ken"
SearchQuerySet().models(Foo, FooSome, FooGone).auto_query(test_search)
上面的查询给出了多个结果。
test_search = "charles k"
SearchQuerySet().models(Foo, FooSome, FooGone).auto_query(test_search)
上面的查询没有给出任何结果。我究竟做错了什么 ?
编辑 :
关注的领域是 edge_ngram
<fieldType name="edge_ngram" class="solr.TextField" positionIncrementGap="1">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory" />
<filter class="solr.LowerCaseFilterFactory" />
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="1"/>
<filter class="solr.EdgeNGramFilterFactory" minGramSize="2" maxGramSize="15" side="front" />
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory" />
<filter class="solr.LowerCaseFilterFactory" />
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="1"/>
</analyzer>
</fieldType>