Solr Spellchecker组件(推荐者)用于跨多个字段的短语(使用不同的标记器)

时间:2014-01-04 17:28:18

标签: solr tokenize autosuggest phrase

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

有两位字段作者(KeywordTokenizer)& subject(StandardTokenizer)被复制到autosuggest(用作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>

样本值: 主题 - &#34;戴尔推出宽屏UltraSharp 3007WFP&#34; ; 作者 - &#34; Del Stiller&#34;

搜索查询:solr / select?q = de; 预期成果:dell,del stiller

根据分配的autosuggest字段类型,结果会有所不同。但我需要的是将每个字段的标记复制到&#34; autosuggest&#34;而不是复制值,以及稍后的标记生成器在整理的字段值上创建新标记。

我使用的是SOLR 4.5.1

1 个答案:

答案 0 :(得分:0)

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

对于您的简单用例,使用TermsComponent可能已经足够了,请查看如何执行此操作here,其中显示“在自动完成中使用”。 这可以在此组件返回的条件下工作,而不是存储的值。