首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >solr中暗示器组件的错误

solr中暗示器组件的错误
EN

Stack Overflow用户
提问于 2013-10-28 09:36:59
回答 1查看 2.5K关注 0票数 1

我正在使用solr自动完成功能,我正在使用solr 4.50来构建我的应用程序,我将遵循链接作为参考。我的建议组件是这样的

代码语言:javascript
复制
  <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.TSTLookup</str>      
      <str name="storeDir">suggest</str>
      <str name="field">autocomplete_text</str>
      <bool name="exactMatchFirst">true</bool>
      <float name="threshold">0.005</float>
      <str name="buildOnCommit">true</str>
      <str name="buildOnOptimize">true</str>
    </lst>
   <lst name="spellchecker">
      <str name="name">jarowinkler</str>  
      <str name="field">lowerfilt</str>  
      <str name="distanceMeasure">org.apache.lucene.search.spell.JaroWinklerDistance</str>  
      <str name="spellcheckIndexDir">spellchecker</str>  
   </lst>
     <str name="queryAnalyzerFieldType">edgytext</str>  
  </searchComponent>

但是,我得到了以下错误

代码语言:javascript
复制
org.apache.solr.spelling.suggest.Suggester  – Loading stored lookup data failed
java.io.FileNotFoundException: /home/anurag/Downloads/solr-4.4.0/example/solr/collection1/data/suggest/tst.dat (No such file or directory)

它说有一些文件丢失了,但是solr暗示组件说它支持这些lookupImpls --

代码语言:javascript
复制
<str name="lookupImpl">org.apache.solr.spelling.suggest.tst.TSTLookup</str>
      <!-- Alternatives to lookupImpl: 
           org.apache.solr.spelling.suggest.fst.FSTLookup   [finite state automaton]
           org.apache.solr.spelling.suggest.fst.WFSTLookupFactory [weighted finite state automaton]
           org.apache.solr.spelling.suggest.jaspell.JaspellLookup [default, jaspell-based]
           org.apache.solr.spelling.suggest.tst.TSTLookup   [ternary trees]
      -->

不知道我做错了什么……任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-10 09:02:31

我能够通过使用Solr项分量实现自动建议功能

solrconfig.xml中添加如下术语组件

代码语言:javascript
复制
<searchComponent name="terms" class="solr.TermsComponent"/>
  <!-- A request handler for demonstrating the terms component -->
  <requestHandler name="/terms" class="solr.SearchHandler" startup="lazy">
     <lst name="defaults">
      <bool name="terms">true</bool>
      <bool name="distrib">false</bool>
    </lst>     
    <arr name="components">
      <str>terms</str>
    </arr>
  </requestHandler>

在schema.xml中为自动建议文本定义字段类型

代码语言:javascript
复制
    <fieldType name="edgytext" class="solr.TextField" >  
      <analyzer>  
        <tokenizer class="solr.KeywordTokenizerFactory"/>  
        <filter class="solr.LowerCaseFilterFactory"/>  
      </analyzer>  
    </fieldType>

schema.xml中添加如下字段

代码语言:javascript
复制
   <field name="name"  type="edgytext" indexed="true" stored="true" />  

   <field name="autocomplete_text" type="edgytext" indexed="true" stored="false"  multiValued="true" omitNorms="true" omitTermFreqAndPositions="false" />

   <copyField source="name" dest="autocomplete_text"/>

现在最重要的一步..。从索引目录中删除所有文件夹(可以在solrconfig.xml中找到..。寻找<dataDir>标签)

重启solr。并重新索引你的数据。您将查看在索引目录中创建的新文件夹。

你可以通过点击url来检查自动提示-

代码语言:javascript
复制
http://127.0.0.1:8983/solr/your_core/terms?terms.fl=autocomplete_text&omitHeader=true&terms.limit=20&terms.sort=index&terms.regex=(.*)your_query(.*)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19631308

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档