`

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

阅读更多
页面引入三个JS:

 
  1. <script type="text/javascript" src="js/jquery-1.7.2.js"></script>  
  2.         <script type="text/javascript" src="js/jquery-ui.js"></script>  
  3.                 <script type="text/javascript" src="js/json.js"></script>  

 
  1. 引入JQUERY UI的CSS文件  

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


 
  1. $(function() {  
  2.       
  3.     function log( message ) {  
  4.             $( "<div/>" ).text( message ).prependTo( "#log" );  
  5.             $( "#log" ).scrollTop( 0 );  
  6.         }  
  7.       
  8.     //http://localhost:8088/solr-src/core0/suggest?q=so&wt=json  
  9.     //搜索引擎关键字自动填充  
  10.     $( "#city" ).autocomplete({  
  11.             source: function( request, response ) {  
  12.                 $.ajax({  
  13.                       
  14.                     url: "http://localhost:8088/solr-src/core0/suggest",  
  15.                     dataType: "json",  
  16.                     data: {  
  17.                         wt:"json",  
  18.                         q: request.term  
  19.                     },  
  20.                     success: function( data ) {  
  21.                           
  22.                         response(data.spellcheck.suggestions[1].suggestion)  
  23.                     /*  
  24.                         response( $.map( data, function( item ) {  
  25.                             return {  
  26.                                 label: item.username,  
  27.                                 value: item.username  
  28.                             }  
  29.                         }));  
  30.                     */    
  31.                     }  
  32.                 });  
  33.             },  
  34.             minLength: 2,//输入两个字符才会发送请求  
  35.               
  36.             select: function( event, ui ) {  
  37.                 log( ui.item ?  
  38.                     "Selected: " + ui.item.label :  
  39.                     "Nothing selected, input was " + this.value);  
  40.                 //执行搜索  
  41.                 $.getJSON("http://localhost:8088/solr-src/core0/select",  
  42.                 { "q": ui.item.label, "version": "2.2","start":0,"rows":10,"indent":"on","wt":"json" },  
  43.                  function(result) {  
  44.                  //显示搜索结果,这里简单显示json字符串  
  45.                  $("div#content").append(JSON.stringify(result.response.docs));  
  46.                   
  47.                   
  48.             });   
  49.                   
  50.             },  
  51.             open: function() {  
  52.                 $( this ).removeClass( "ui-corner-all" ).addClass( "ui-corner-top" );  
  53.             },  
  54.             close: function() {  
  55.                 $( this ).removeClass( "ui-corner-top" ).addClass( "ui-corner-all" );  
  56.             }  
  57.               
  58.         });  
  59. });  


 

html代码:


 
  1. <div class="ui-widget">  
  2.     <label for="city">Your city: </label>  
  3.     <input id="city" />  
  4. </div>  
  5.   
  6. <div class="ui-widget" style="margin-top:2em; font-family:Arial">  
  7.     Result:  
  8.     <div id="log" style="height: 200px; width: 300px; overflow: auto;" class="ui-widget-content"></div>  
  9. </div>  
  10.   
  11. </div>  


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


 
  1. <searchComponent name="spellcheck" class="solr.SpellCheckComponent">  
  2.   
  3.     <str name="queryAnalyzerFieldType">textSpell</str>  
  4.   
  5.     <!-- Multiple "Spell Checkers" can be declared and used by this  
  6.          component  
  7.       -->  
  8.   
  9.     <!-- a spellchecker built from a field of the main index, and  
  10.          written to disk  
  11.       -->  
  12.     <lst name="spellchecker">  
  13.       <str name="name">default</str>  
  14.       <str name="field">name</str>  
  15.       <str name="buildOnCommit">true</str>  
  16.       <str name="spellcheckIndexDir">spellchecker</str>  
  17.       <!-- uncomment this to require terms to occur in 1% of the documents   
  18.            in order to be included in the dictionary  
  19.         -->  
  20.       <!-- 
  21.         <float name="thresholdTokenFrequency">.01</float> 
  22.       -->  
  23.     </lst>  
  24.   
  25.     <!-- a spellchecker that uses a different distance measure -->  
  26.     <!--  
  27.        <lst name="spellchecker">  
  28.          <str name="name">jarowinkler</str>  
  29.          <str name="field">spell</str>  
  30.          <str name="distanceMeasure">  
  31.            org.apache.lucene.search.spell.JaroWinklerDistance  
  32.          </str>  
  33.          <str name="spellcheckIndexDir">spellcheckerJaro</str>  
  34.        </lst>  
  35.      -->  
  36.   
  37.     <!-- a spellchecker that use an alternate comparator   
  38.   
  39.          comparatorClass be one of:  
  40.           1. score (default)  
  41.           2. freq (Frequency first, then score)  
  42.           3. A fully qualified class name  
  43.       -->  
  44.     <!--  
  45.        <lst name="spellchecker">  
  46.          <str name="name">freq</str>  
  47.          <str name="field">lowerfilt</str>  
  48.          <str name="spellcheckIndexDir">spellcheckerFreq</str>  
  49.          <str name="comparatorClass">freq</str>  
  50.          <str name="buildOnCommit">true</str>  
  51.       -->  
  52.   
  53.     <!-- A spellchecker that reads the list of words from a file -->  
  54.     <!--  
  55.        <lst name="spellchecker">  
  56.          <str name="classname">solr.FileBasedSpellChecker</str>  
  57.          <str name="name">file</str>  
  58.          <str name="sourceLocation">spellings.txt</str>  
  59.          <str name="characterEncoding">UTF-8</str>  
  60.          <str name="spellcheckIndexDir">spellcheckerFile</str>  
  61.        </lst>  
  62.       -->  
  63.   </searchComponent>  
  64.   
  65.   <!-- A request handler for demonstrating the spellcheck component.    
  66.   
  67.        NOTE: This is purely as an example.  The whole purpose of the  
  68.        SpellCheckComponent is to hook it into the request handler that  
  69.        handles your normal user queries so that a separate request is  
  70.        not needed to get suggestions.  
  71.   
  72.        IN OTHER WORDS, THERE IS REALLY GOOD CHANCE THE SETUP BELOW IS  
  73.        NOT WHAT YOU WANT FOR YOUR PRODUCTION SYSTEM!  
  74.          
  75.        See http://wiki.apache.org/solr/SpellCheckComponent for details  
  76.        on the request parameters.  
  77.     -->  
  78.        
  79.   <requestHandler name="/spell" class="solr.SearchHandler" startup="lazy">  
  80.     <lst name="defaults">  
  81.       <str name="df">text</str>  
  82.       <str name="spellcheck.onlyMorePopular">false</str>  
  83.       <str name="spellcheck.extendedResults">false</str>  
  84.       <str name="spellcheck.count">1</str>  
  85.     </lst>  
  86.     <arr name="last-components">  
  87.       <str>spellcheck</str>  
  88.     </arr>  
  89.   </requestHandler>  
  90.      
  91.       
  92.     <searchComponent class="solr.SpellCheckComponent" name="suggest">  
  93.     <lst name="spellchecker">  
  94.       <str name="name">suggest</str>  
  95.       <str name="classname">org.apache.solr.spelling.suggest.Suggester</str>  
  96.       <str name="lookupImpl">org.apache.solr.spelling.suggest.tst.TSTLookup</str>  
  97.       <!-- Alternatives to lookupImpl:   
  98.            org.apache.solr.spelling.suggest.fst.FSTLookup   [finite state automaton]  
  99.            org.apache.solr.spelling.suggest.fst.WFSTLookupFactory [weighted finite state automaton]  
  100.            org.apache.solr.spelling.suggest.jaspell.JaspellLookup [default, jaspell-based]  
  101.            org.apache.solr.spelling.suggest.tst.TSTLookup   [ternary trees]  
  102.       -->  
  103.       <str name="field">text</str>  <!-- the indexed field to derive suggestions from -->  
  104.       <float name="threshold">0.005</float>  
  105.       <str name="buildOnCommit">true</str>  
  106. <!-- 
  107.       <str name="sourceLocation">american-english</str> 
  108. -->  
  109.     </lst>  
  110.   </searchComponent>  
  111.   <requestHandler class="org.apache.solr.handler.component.SearchHandler" name="/suggest">  
  112.     <lst name="defaults">  
  113.       <str name="spellcheck">true</str>  
  114.       <str name="spellcheck.dictionary">suggest</str>  
  115.       <str name="spellcheck.onlyMorePopular">true</str>  
  116.       <str name="spellcheck.count">5</str>  
  117.       <str name="spellcheck.collate">true</str>  
  118.     </lst>  
  119.     <arr name="components">  
  120.       <str>suggest</str>  
  121.     </arr>  
  122.   </requestHandler>  


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

当选择solr时,如下图:

分享到:
评论

相关推荐

    jquery-autocomplete 自动填充插件参数使用说明

    总结,jQuery UI Autocomplete插件是一个强大且灵活的工具,能够帮助开发者快速实现自动填充功能。通过理解并巧妙运用其提供的参数,可以定制出满足各种需求的搜索体验,从而提升网站或应用的用户体验。无论是在小型...

    jquery autocomplete 实现(自动填充及连选)

    **jQuery Autocomplete 实现:自动填充与连续选择详解** jQuery Autocomplete 是一个强大的插件,它为输入框提供了自动填充功能,通常用于提高用户输入效率和用户体验。在 Web 应用程序中,当用户在搜索框中键入...

    Jquery AutoComplete组件+Ajax实现搜索框输入提示功能小记

    ### Jquery AutoComplete组件+Ajax实现搜索框输入提示功能详解 #### 前言 在当前Web应用开发中,提供良好的用户体验是至关重要的。本文主要介绍如何使用Jquery AutoComplete组件与Ajax技术来实现搜索框的实时输入...

    autocomplete实现百度搜索自动填充特效

    标题中的“autocomplete实现百度搜索自动填充特效”是指在网页中实现类似于百度搜索框的自动完成功能,这种功能能够根据用户输入的字符实时提供匹配的建议列表,提高用户的输入效率和搜索体验。在Web开发中,这是一...

    PHP jquery autocomplete实现

    在本文中,我们将深入探讨如何使用PHP和jQuery的Autocomplete功能来实现一个高效且用户友好的搜索输入框。这个功能通常用于网站上的搜索框,它能够根据用户输入的字符动态提供匹配建议,提升用户体验。 首先,`...

    jquery Autocomplete 仿百度搜索 只能搜索提示

    在IT行业中,jQuery Autocomplete是一个常用的插件,用于实现类似于搜索引擎的自动补全功能。它为用户提供了方便快捷的输入体验,尤其适用于大型数据集的筛选。本项目以"jQuery Autocomplete 仿百度搜索 只能搜索...

    jquery autocomplete dwr结合 修改Data

    标题中的“jQuery Autocomplete DWR结合 修改Data”指的是在Web开发中使用jQuery UI的Autocomplete组件与Direct Web Remoting (DWR)技术相结合,并对数据进行定制化处理的方法。jQuery Autocomplete是一个流行的UI...

    jquery.autocomplete.js使用示例,可直接运行

    jQuery Autocomplete.js 插件是提高网页表单输入效率的好帮手,通过与Ajax的结合,能够轻松实现动态数据的自动补全功能。在实际开发中,可以根据具体需求灵活配置和扩展,以满足各种复杂场景。记得在使用过程中注意...

    jquery autocomplete

    jQuery Autocomplete 是一个非常流行的 jQuery 插件,它为输入框提供了自动补全的功能,极大地提升了用户在网站上的交互体验。这个插件源自于 jQuery UI 库,但也可以单独使用。在本文中,我们将深入探讨 jQuery ...

    jquery autocomplete下载.rar

    jQuery Autocomplete 是一个非常实用的插件,它为网页表单输入框提供了自动补全功能,极大地提升了用户体验。这个压缩包“jquery autocomplete下载.rar”包含了实现这一功能所需的基本文件,包括样式表、HTML 模板、...

    jqueryUI的Autocomplete实现代码

    **jQuery UI Autocomplete** 是一个强大的功能,它允许用户在输入框中输入文字时自动提示相关的建议信息。这个功能在各种网页应用中广泛使用,比如搜索引擎、表单填充、产品搜索等,极大地提升了用户体验。本篇文章...

    jquery自动补全插件(jquery autocomplete)

    **jQuery AutoComplete ...总结,jQuery AutoComplete 插件通过简单的配置和使用,可以实现强大的自动补全功能,提高用户体验。结合前端与后端接口,可以构建出高效的动态搜索功能。希望这个插件能为你的项目带来便利。

    jquery的autocomplete(自动补全)插件

    **jQuery的Autocomplete插件**是用于实现网页输入框自动补全功能的一种高效解决方案,它极大地提升了用户体验,尤其是在用户需要从大量数据中选择时。这个插件是基于jQuery库的,因此,首先需要确保在项目中引入了...

    jquery autoComplete

    具体实现可能涉及到对数据库的查询,使用 AJAX 将用户输入与数据库中的表名和字段进行匹配,并将匹配结果返回给前端展示。 通过学习这个范例,你可以了解到如何结合实际业务需求,利用 `jQuery autoComplete` 插件...

    JQuery autocomplete Ajax分页控件

    `jQuery autocomplete` 是jQuery UI库中的一个组件,它为输入框提供了自动完成的功能,能够根据用户输入的文本动态地从服务器获取并显示建议的匹配项。这个功能对于提高用户体验,特别是处理大量数据时,如搜索或者...

    jquery autocomplete实现框输入提示

    这个示例演示了如何使用 jQuery Autocomplete 实现输入框的智能提示,并通过 AJAX 获取数据源,以及如何自定义 `_renderItem` 方法以显示更丰富的信息。在实际项目中,你可以根据需求调整代码,如添加错误处理、优化...

    jQuery AutoComplete使用实例

    jQuery AutoComplete 是一个非常流行的 jQuery 插件,它为输入框提供了自动补全功能,能够极大地提升用户体验。这个插件基于 jQuery 库,因此需要先引入 jQuery 才能使用。在本文中,我们将深入探讨如何在项目中集成...

    jquery Autocomplete插件,搜索自动完成

    jQuery plugin: Autocomplete 参数及实例 官网:jQuery plugin: Autocomplete 此插件依赖于 jquery 1.2.6 --- jquery 1.8.3 转自:http://www.cnblogs.com/duanhuajian/p/3398904.html

    java实现jquery.autocomplete自动搜索含中文

    用java实现autocomplete搜索功能,可以获取除输入框的其它动态参数,后台字符串拼接,返回json数据,格式如下: { query:'Li', suggestions:['Liberia', 'Libyan Arab Jamahiriya', 'Liechtenstein', 'Lithuania'...

    jquery autocomplete 动态补全例子有说明ajax加载

    在给定的“jquery autocomplete 动态补全例子”中,我们将探讨如何实现这一功能,特别关注如何通过AJAX加载JSON数据。 **jQuery Autocomplete基本原理** jQuery UI库包含了Autocomplete组件,它可以与普通的HTML...

Global site tag (gtag.js) - Google Analytics