solr+ajax智能拼音详解---solr跨域请求
最近刚做完solr的ajax智能拼音。总结一下。 前端:jQueryAutoComplete插件。插件详见http://download.csdn.net/detail/wangzhaodong001/5018263 后端:solr自带suggest。拼音简写功能 效果图
1、前端解析(客户端) $("#top_search_content").autocomplete("http://192.168.0.126:5080/space/suggest?wt=json&json.wrf=?", (1)http://192.168.0.126:5080/space/suggest?wt=json&json.wrf=? 访问地址 wt:表示返回为json串 json.wrf:使用jsonp跨域请求格式。注意问号。solr官方提供回调函数。问号会自动识别回调函数。有的文章写得是json.wrf=callback。之后自定义一个callback回调函数。这样的话。success函数就不会执行。我就一直纠结这个问题。之后把回调函数去掉。就行了。 其他都是一些jQueryAutocomplate的配置。 (2)因为返回数据为:所以需要解析
所以在success中加入var autocompleteData = data.spellcheck.suggestions[1].suggestion+""; 简单修改一下parse方法就行 var rows = data.split("n"); 换成var rows = data.split(",");即可。 客户端处理完成
2、solr服务端 (1)、在schema.xml中添加字段 <fieldname="suggestion"type="string"indexed="true"stored="true"termVectors="true"multiValued="true"/> (2)把需要搜索简写的字段使用拷贝
<copyFieldsource="nickName"dest="suggestion"/>
<copyFieldsource="userName"dest="suggestion"/>
(3)、修改solrconfig.xml.添加以下配置
<searchComponent class="solr.SpellCheckComponent" name="suggest"> <str name="queryAnalyzerFieldType">string</str> <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="field">suggestion</str> <!-- the indexed field to derive suggestions from --> <float name="threshold">0.0001</float> <str name="spellcheckIndexDir">spellchecker</str> <str name="comparatorClass">freq</str> <str name="buildOnOptimize">true</str> <!--<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.extendedResults">false</str> <str name="spellcheck.count">10</str> <str name="spellcheck.collate">true</str> </lst> <arr name="components"> <str>suggest</str> </arr> </requestHandler> <queryConverter name="phraseQueryConverter" class="org.apache.solr.spelling.SpellingQueryConverter"/>
solr会自动把拼音检查放到
(3)如果请求道数据为以下东西说明配置成功
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |