0

我正在尝试使用需要支持不同标记器的多个字段使用 solr 实现自动建议功能。我想要完成的场景如下:

有两个字段作者(KeywordTokenizer)和主题(StandardTokenizer)被复制到自动建议(用作spellcheck.field)

<field name="author" type="phrase" indexed="true" stored="true" multiValued="false"/>
<field name="subject" type="text_general" indexed="true" stored="true"/> 
<field name="autosuggest" type="text_general" indexed="true" stored="true"     multiValued="true"/>
<copyField source="*" dest="autosuggest"/>
<fieldType name="phrase" class="solr.TextField" positionIncrementGap="100">
  <analyzer>
     <tokenizer class="solr.KeywordTokenizerFactory" />
     <filter class="solr.LowerCaseFilterFactory" />
     <filter class="solr.RemoveDuplicatesTokenFilterFactory" />         
   </analyzer>
</fieldType>

示例值:主题 - “Dell boost Widescreen UltraSharp 3007WFP”;作者——“德尔斯蒂勒”

搜索查询 : solr/select?q=de ; 预期结果:戴尔,戴尔斯蒂勒

结果根据分配的自动建议字段类型而有所不同。但是我需要将每个字段中的标记复制到“自动建议”而不是复制值,然后标记生成器在整理的字段值上创建新标记。

我正在使用 SOLR 4.5.1

4

1 回答 1

0

这里发生的事情是 stored=true 也将原始值存储在目标字段中。

对于您的简单用例,使用 TermsComponent 可能就足够了,请在此处查看如何操作,其中显示“在自动完成中使用”。这将起作用,因为该组件返回的术语,而不是存储的值。

于 2014-01-04T20:56:15.143 回答