Solr SuggestComponent是否可以返回木瓦而不是整个字段值?
我使用Solr5.0.0,希望创建一个自动完成功能,从文档中的grams(或shingles)一词生成建议。 问题是,作为建议查询的返回,我只能得到搜索字段的完整“术语”,这可能非常长 当前问题:Solr SuggestComponent是否可以返回木瓦而不是整个字段值?,solr,autocomplete,autosuggest,Solr,Autocomplete,Autosuggest,我使用Solr5.0.0,希望创建一个自动完成功能,从文档中的grams(或shingles)一词生成建议。 问题是,作为建议查询的返回,我只能得到搜索字段的完整“术语”,这可能非常长 当前问题: <fieldType name="text_autocomplete" class="solr.TextField" positionIncrementGap="100"> <analyzer type="index"> <tok
<fieldType name="text_autocomplete" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.ShingleFilterFactory" minShingleSize="2" maxShingleSize="5"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
<field name="example_field" type="text_autocomplete" indexed="true" stored="true"/>
query?q=*&
rows=0&
facet=true&
facet.field=example_field&
facet.limit=-1&
wt=json&
indent=true&
facet.prefix=so
输入:“所以”
建议:
“……非常长的文本son长文本继续……”
“……下一个长文本solar下一个文本继续……”
目标:
<fieldType name="text_autocomplete" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.ShingleFilterFactory" minShingleSize="2" maxShingleSize="5"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
<field name="example_field" type="text_autocomplete" indexed="true" stored="true"/>
query?q=*&
rows=0&
facet=true&
facet.field=example_field&
facet.limit=-1&
wt=json&
indent=true&
facet.prefix=so
输入:“所以”
关于木瓦的建议:
“son”
“solar”
“solar测试”
等
我的建议者
解析固定查找工厂
文档字典工厂
标题和描述建议
价格
自动完成
自动完成
真的
schema.xml:
<fieldType name="autocomplete" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="lang/stopwords_de.txt" format="snowball"/>
<filter class="solr.ShingleFilterFactory" maxShingleSize="2" outputUnigrams="true" outputUnigramsIfNoShingles="true"/>
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
</analyzer>
</fieldType>
我想返回最多3个单词作为自动完成术语。SuggestComponent是否可能实现这一点,或者您将如何实现这一点?无论我尝试什么,我总是收到匹配文档的完整字段值
这是预期的行为还是我做错了什么
非常感谢您在schema.xml中定义字段类型如下:
<fieldType name="text_autocomplete" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.ShingleFilterFactory" minShingleSize="2" maxShingleSize="5"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
<field name="example_field" type="text_autocomplete" indexed="true" stored="true"/>
query?q=*&
rows=0&
facet=true&
facet.field=example_field&
facet.limit=-1&
wt=json&
indent=true&
facet.prefix=so
在facet.prefix字段中,指定要搜索的术语(本例中为“so”)。如果建议中需要少于5个单词,请相应减少fieldType定义中的maxShingleSize。默认情况下,您将按结果出现频率的降序获得结果