Solr自动填充不在字符串开头的单词

时间:2014-09-16 01:44:59

标签: solr

我在Solr有一些文档,其中包含有关书籍的信息。其中一个字段是作者,定义为:

<field name="author" type="text_general" indexed="true" stored="true"/>

这是doc的一个例子:

<doc>
    <str name="id">db04</str>
    <str name="isbn">0596529325</str>
    <str name="author">Toby Segaran</str>
    <str name="category">Computers/Programming/Information Retrieval/Machine Learning</str>
    <arr name="title">
      <str>Programming Collective Intelligence</str>
    </arr>
    <int name="yearpub">2007</int>
    <date name="pubdate">2007-07-28T00:00:01Z</date>
    </doc>

我尝试使用Solr 4.2创建自动完成系统。到目前为止它运作良好,如果我搜索to,它会返回Toby Segaran作为结果。

但是在我们的网站上,很多人搜索Segaran,例如我想知道是否有可能在发生这种情况时以某种方式建议Toby Segaran

到目前为止,这是我使用的schema.xml:

<field name="author_suggest" type="text_auto" indexed="true" stored="true" multiValued="false"/>
<copyField source="author" dest="author_suggest"/>

<fieldType class="solr.TextField" name="text_auto">
  <analyzer>
   <tokenizer class="solr.KeywordTokenizerFactory"/>
   <filter class="solr.LowerCaseFilterFactory"/>
   </analyzer>
</fieldType>

基本上,字段author会被处理并复制到author_suggest

在solrconfig.xml中,创建了这些:

<searchComponent class="solr.SpellCheckComponent" name="suggest">
  <lst name="spellchecker">
    <str name="name">suggest</str>
    <str name="classname">org.apache.solr.spelling.suggest.Suggester</str>
    <str name="lookupImpl">org.apache.solr.spelling.suggest.tst.TSTLookupFactory</str>
    <str name="field">author_suggest</str> 
    <float name="threshold">0.005</float>
    <str name="buildOnCommit">true</str>
  </lst>
</searchComponent>

<requestHandler class="org.apache.solr.handler.component.SearchHandler" name="/suggest">
  <lst name="defaults">
    <str name="spellcheck">true</str>
    <str name="spellcheck.dictionary">suggest</str>
    <str name="spellcheck.onlyMorePopular">true</str>
    <str name="spellcheck.count">6</str>
    <str name="spellcheck.collate">false</str>
  </lst>
  <arr name="components">
    <str>suggest</str>
  </arr>
</requestHandler>

这样可以以某种方式使用来自Solr的建议者基于不完全位于短语开头的单词提出建议吗?

如果您需要更多信息,请告诉我们。

提前致谢

0 个答案:

没有答案