我正在尝试使用solr的条款组件进行自动完成,但我没有收到任何结果。
我的疑问:
/solr/terms?&terms.fl=autocomplete_field&wt=json&omitHeader=true
我的架构:
<field name="autocomplete_field" type="text_tag" indexed="true" stored="true" required="false" multiValued="true" termVectors="true" />
<fieldType name="text_tag" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.KeywordTokenizerFactory"/>
<!-- in this example, we will only use synonyms at query time
<filter class="solr.SynonymFilterFactory" synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/>
-->
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/>
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/>
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
</analyzer>
</fieldType>
我的结果:
{"terms":{"autocomplete_field":{}}}
答案 0 :(得分:0)
是否启用了组件。
你能检查terms
是否设置为真。
<searchComponent name="termsComponent" class="solr.TermsComponent"/>
<requestHandler name="/terms" class="solr.SearchHandler">
<lst name="defaults">
<bool name="terms">true</bool>
</lst>
<arr name="components">
<str>termsComponent</str>
</arr>
</requestHandler>
您也可以将terms=true
作为请求参数传递并检查。