700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > jquery autocomplete实现solr查询字段自动填充并执行查询

jquery autocomplete实现solr查询字段自动填充并执行查询

时间:2018-12-14 05:22:08

相关推荐

jquery autocomplete实现solr查询字段自动填充并执行查询

独角兽企业重金招聘Python工程师标准>>>

页面引入三个JS:

<scripttype="text/javascript"src="js/jquery-1.7.2.js"></script><scripttype="text/javascript"src="js/jquery-ui.js"></script><scripttype="text/javascript"src="js/json.js"></script>

引入JQUERYUI的CSS文件

<linkrel="stylesheet"href="css/redmond/jqstyle.css"type="text/css"></link></head>

$(function(){functionlog(message){$("<div/>").text(message).prependTo("#log");$("#log").scrollTop(0);}//http://localhost:8088/solr-src/core0/suggest?q=so&wt=json//搜索引擎关键字自动填充$("#city").autocomplete({source:function(request,response){$.ajax({url:"http://localhost:8088/solr-src/core0/suggest",dataType:"json",data:{wt:"json",q:request.term},success:function(data){response(data.spellcheck.suggestions[1].suggestion)/*response($.map(data,function(item){return{label:item.username,value:item.username}}));*/}});},minLength:2,//输入两个字符才会发送请求select:function(event,ui){log(ui.item?"Selected:"+ui.item.label:"Nothingselected,inputwas"+this.value);//执行搜索$.getJSON("http://localhost:8088/solr-src/core0/select",{"q":ui.item.label,"version":"2.2","start":0,"rows":10,"indent":"on","wt":"json"},function(result){//显示搜索结果,这里简单显示json字符串$("div#content").append(JSON.stringify(result.response.docs));});},open:function(){$(this).removeClass("ui-corner-all").addClass("ui-corner-top");},close:function(){$(this).removeClass("ui-corner-top").addClass("ui-corner-all");}});});

html代码:

<divclass="ui-widget"><labelfor="city">Yourcity:</label><inputid="city"/></div><divclass="ui-widget"style="margin-top:2em;font-family:Arial">Result:<divid="log"style="height:200px;width:300px;overflow:auto;"class="ui-widget-content"></div></div></div>

solrconfig.xml中配置拼写检查和自动补全组件:

<searchComponentname="spellcheck"class="solr.SpellCheckComponent"><strname="queryAnalyzerFieldType">textSpell</str><!--Multiple"SpellCheckers"canbedeclaredandusedbythiscomponent--><!--aspellcheckerbuiltfromafieldofthemainindex,andwrittentodisk--><lstname="spellchecker"><strname="name">default</str><strname="field">name</str><strname="buildOnCommit">true</str><strname="spellcheckIndexDir">spellchecker</str><!--uncommentthistorequiretermstooccurin1%ofthedocumentsinordertobeincludedinthedictionary--><!--<floatname="thresholdTokenFrequency">.01</float>--></lst><!--aspellcheckerthatusesadifferentdistancemeasure--><!--<lstname="spellchecker"><strname="name">jarowinkler</str><strname="field">spell</str><strname="distanceMeasure">org.apache.lucene.search.spell.JaroWinklerDistance</str><strname="spellcheckIndexDir">spellcheckerJaro</str></lst>--><!--aspellcheckerthatuseanalternatecomparatorcomparatorClassbeoneof:1.score(default)2.freq(Frequencyfirst,thenscore)3.Afullyqualifiedclassname--><!--<lstname="spellchecker"><strname="name">freq</str><strname="field">lowerfilt</str><strname="spellcheckIndexDir">spellcheckerFreq</str><strname="comparatorClass">freq</str><strname="buildOnCommit">true</str>--><!--Aspellcheckerthatreadsthelistofwordsfromafile--><!--<lstname="spellchecker"><strname="classname">solr.FileBasedSpellChecker</str><strname="name">file</str><strname="sourceLocation">spellings.txt</str><strname="characterEncoding">UTF-8</str><strname="spellcheckIndexDir">spellcheckerFile</str></lst>--></searchComponent><!--Arequesthandlerfordemonstratingthespellcheckcomponent.NOTE:Thisispurelyasanexample.ThewholepurposeoftheSpellCheckComponentistohookitintotherequesthandlerthathandlesyournormaluserqueriessothataseparaterequestisnotneededtogetsuggestions.INOTHERWORDS,THEREISREALLYGOODCHANCETHESETUPBELOWISNOTWHATYOUWANTFORYOURPRODUCTIONSYSTEM!See/solr/SpellCheckComponentfordetailsontherequestparameters.--><requestHandlername="/spell"class="solr.SearchHandler"startup="lazy"><lstname="defaults"><strname="df">text</str><strname="spellcheck.onlyMorePopular">false</str><strname="spellcheck.extendedResults">false</str><strname="spellcheck.count">1</str></lst><arrname="last-components"><str>spellcheck</str></arr></requestHandler><searchComponentclass="solr.SpellCheckComponent"name="suggest"><lstname="spellchecker"><strname="name">suggest</str><strname="classname">org.apache.solr.spelling.suggest.Suggester</str><strname="lookupImpl">org.apache.solr.spelling.suggest.tst.TSTLookup</str><!--AlternativestolookupImpl:org.apache.solr.spelling.suggest.fst.FSTLookup[finitestateautomaton]org.apache.solr.spelling.suggest.fst.WFSTLookupFactory[weightedfinitestateautomaton]org.apache.solr.spelling.suggest.jaspell.JaspellLookup[default,jaspell-based]org.apache.solr.spelling.suggest.tst.TSTLookup[ternarytrees]--><strname="field">text</str><!--theindexedfieldtoderivesuggestionsfrom--><floatname="threshold">0.005</float><strname="buildOnCommit">true</str><!--<strname="sourceLocation">american-english</str>--></lst></searchComponent><requestHandlerclass="org.apache.ponent.SearchHandler"name="/suggest"><lstname="defaults"><strname="spellcheck">true</str><strname="spellcheck.dictionary">suggest</str><strname="spellcheck.onlyMorePopular">true</str><strname="spellcheck.count">5</str><strname="spellcheck.collate">true</str></lst><arrname="components"><str>suggest</str></arr></requestHandler>

当输入so的时候,如下图:

当选择solr时,如下图:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。