错误在Solr的suggester组件 [英] error in suggester component in solr
问题描述
我与Solr的自动完成功能的工作,我使用Solr的4.50来构建我的应用程序,而我下面<一个href=\"http://lucene.472066.n3.nabble.com/auto-completion-search-with-solr-using-NGrams-in-SOLR-td3998559i20.html\"相对=nofollow>这个链接作为参考。我的建议组件是这样的
&LT;的SearchComponent类=solr.SpellCheckComponentNAME =建议&GT;
&LT; LST NAME =拼写检查&GT;
&LT; STR名=名与GT;建议&LT; / STR&GT;
&LT; STR NAME =类名&GT; org.apache.solr.spelling.suggest.Suggester&LT; / STR&GT;
&LT; STR NAME =lookupImpl&GT; org.apache.solr.spelling.suggest.tst.TSTLookup&LT; / STR&GT;
&LT; STR NAME =storeDir&GT;建议&LT; / STR&GT;
&LT; STR NAME =场&GT; autocomplete_text&LT; / STR&GT;
&LT;布尔NAME =exactMatchFirst&GT;真&LT; /布尔&GT;
&LT;浮动NAME =门槛&GT; 0.005 LT; /浮动&GT;
&LT; STR NAME =buildOnCommit&GT;真&LT; / STR&GT;
&LT; STR NAME =buildOnOptimize&GT;真&LT; / STR&GT;
&LT; / LST&GT;
&LT; LST NAME =拼写检查&GT;
&LT; STR名=名与GT; jarowinkler&LT; / STR&GT;
&LT; STR NAME =场&GT; lowerfilt&LT; / STR&GT;
&LT; STR NAME =distanceMeasure&GT; org.apache.lucene.search.spell.JaroWinklerDistance&LT; / STR&GT;
&LT; STR NAME =spellcheckIndexDir&GT;拼写检查&LT; / STR&GT;
&LT; / LST&GT;
&LT; STR NAME =queryAnalyzerFieldType&GT; edgytext&LT; / STR&GT;
&LT; /&的SearchComponent GT;
不过,我收到以下错误
org.apache.solr.spelling.suggest.Suggester - 装载存储查找数据失败
java.io.FileNotFoundException:/home/anurag/Downloads/solr-4.4.0/example/solr/collection1/data/suggest/tst.dat(没有这样的文件或目录)
它说,有些文件丢失了,但Solr的维基suggester组件说,它支持这些lookupImpls -
&LT; STR NAME =lookupImpl&GT; org.apache.solr.spelling.suggest.tst.TSTLookup&LT; / STR&GT;
&LT; - 替代lookupImpl!
org.apache.solr.spelling.suggest.fst.FSTLookup [有限状态自动机]
org.apache.solr.spelling.suggest.fst.WFSTLookupFactory [加权有限状态自动机]
org.apache.solr.spelling.suggest.jaspell.JaspellLookup [默认的,基于jaspell-]
org.apache.solr.spelling.suggest.tst.TSTLookup [三元树]
- &GT;
不知道我在做什么错了.....任何帮助会深深AP preciated
我是能够得到自动提示功能,通过使用的 Solr的术语组件
添加组件长期在你的 solrconfig.xml中
像这样
&LT;的SearchComponent名称=项级=solr.TermsComponent/&GT;
&LT;! - 用于演示的条款成分请求处理程序 - &GT;
&LT; requestHandler NAME =/项级=solr.SearchHandler启动=懒&GT;
&LT; LST NAME =默认&GT;
&LT;布尔名称=术语&GT;真&LT; /布尔&GT;
&LT;布尔NAME =DISTRIB&GT;假LT; /布尔&GT;
&LT; / LST&GT;
&LT; ARR NAME =组件&GT;
&LT; STR&GT;条款和LT; / STR&GT;
&LT; / ARR&GT;
&LT; / requestHandler&GT;
定义一个字段类型在schema.xml中的文字自动提示
&LT;字段类型名称=edgytext级=solr.TextField&GT;
&LT;分析仪和GT;
&LT; tokenizer类=solr.KeywordTokenizerFactory/&GT;
&LT;过滤器类=solr.LowerCaseFilterFactory/&GT;
&LT; /分析仪&GT;
&LT; /字段类型&GT;
添加字段 schema.xml中
像这样
&LT;字段名称=名称TYPE =edgytext索引=真正的存储=真/&GT; &LT;字段名=autocomplete_textTYPE =edgytext收录=真正的存储=假多值=真omitNorms =真omitTermFreqAndPositions =FALSE/&GT; &LT; copyField源=名字目标=autocomplete_text/&GT;
现在最重要的一步......从索引目录中删除所有文件夹
(可在 solrconfig.xml中
可以发现,...查找&LT;&DATADIR GT;
标记)
重新启动Solr的。并重新索引数据。你会本身新的文件夹在你的索引目录中创建。
您可以通过点击网址查看自动提示工作 -
<$p$p><$c$c>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(.*)I am working with solr auto complete functionality,I am using solr 4.50 to build my application, and I am following this link as a reference. My suggest component is something like this
<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>
but, I am getting the following error
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)
It says that some file are missing but the solr wiki suggester component says it supports these lookupImpls --
<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]
-->
Dont know what I am doing wrong..... Any help will be deeply appreciated
I was able to get the autosuggest functionality working by using the Solr Term Component
Add term components in your solrconfig.xml
like this
<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>
define a field type for your autosuggest text in schema.xml
<fieldType name="edgytext" class="solr.TextField" >
<analyzer>
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
add fields in schema.xml
like this
<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"/>
Now the most important step... Remove all the folders from your index directory
(can be found in solrconfig.xml
,.. look for <dataDir>
tag)
Restart the solr. and reindex your data. You will se new folders created in your index directory.
You can check the auto suggest working by hitting the url -
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(.*)
这篇关于错误在Solr的suggester组件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!