Solr SuggestComponent是否可以返回木瓦而不是整个字段值?

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

我使用Solr5.0.0,希望创建一个自动完成功能,从文档中的grams(或shingles)一词生成建议。 问题是,作为建议查询的返回,我只能得到搜索字段的完整“术语”,这可能非常长

当前问题:

 <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。默认情况下,您将按结果出现频率的降序获得结果