关于如何利用suggest添加Solr中自动提示功能的简介

suggest 是搜索引擎一个方便的功能,对数据的关键字进行预测和建议,减少了用户的输入,大体的效果如下:

幸运的是 solr 也提供了类似的功能,在该功能的基础上,配合 jQuery 或 kissy 的自动完成组件就可以实现类似上面的功能。
启动该功能的过程大体如下:
suggest 的功能依赖拼写组件,solr_home/data 目录下会有一个 spellchecker 目录,该目录用于存放 suggest 和 拼写检查的索引库,所以要先配置 spell 功能,配置如下:

在solrconfig.xml中添加如下配置:

<searchComponent name="spellcheck" class="solr.SpellCheckComponent">
   <str name="queryAnalyzerFieldType">text_ik</str>
   <lst name="spellchecker">
    <str name="name">default</str>
    <str name="field">suggestion</str>
    <str name="buildOnCommit">true</str>
    <str name="spellcheckIndexDir">spellchecker</str>
   </lst>
</searchComponent>

上述中的 field 用于指定主索引库中用于 spellchecker 索引的数据从主索引库的那个字段来获取。buildOnCommit 该属性为 true 时,当主索引库有提交指令时,将会自动把指定字段的内容送到 spellchecker 索引库,作为拼写检查和 suggest 使用。

接下来配置 suggest 的处理组件和请求类,如下所示:

这时候重新提交数据,会发现原先为空的 spellchecker 为空的索引库中有数据了,然后打开类似这样的网址(请将q=的值换成 title 字段中有的值)

http://localhost:8983/solr/suggest/?q=%E7%94%9F

时间: 2024-11-05 13:30:14

关于如何利用suggest添加Solr中自动提示功能的简介的相关文章

关于xml中自动提示功能的设置

我们在编写xml文件时如果有自动提示功能,将会事半功倍,下面我就怎么设置xml进行说明: 在xml文件的开始几行一般有编写xml文件的语法要求;如 <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

Laravel添加代码自动提示功能

在使用Laravel框架的时候,可能会碰上代码无法自动提示的情况,那么如何添加自动提示功能呢? 1,首先在composer.json中加入以下内容: "require": { "php": ">=5.6.4", "laravel/framework": "5.4.*", "laravel/tinker": "~1.0", "barryvdh/larav

指尖上的电商---(9).net开发Solr中的Facet功能

上一节中我们演示了在SolrAdmin中使用Facet功能来进行分组统计,这一节我们看看怎样使用.NET开发Solr中的Facet功能.在讲Facet功能的同时, 我们看下.Net中怎样使用Solr查询.使用的客户端工具是easysorl.net,大家可以去codeplex下载.这个工具很好用. 看如下图,下图就是我们要演示的功能   1.模糊查询 模糊查询就是搜索指定的汉字得到一个结果.下面的示例就是查询商品名称中包含白色的所有商品,最终得到的结果如下图 代码 public void Quer

java_eclipse添加DID实现自动提示

便捷无错开发 对于xml 配置没有自动提示是多么恼火就不用说了,eclipse本身很多都是默认关闭了的,如果开发者不知道的话,就不知道怎么去设置,下面介绍几种自动提示设置的方法: XML:获得提示更好的编写配置,把错误减少,添加did文件实现自动提示功能 引用did:<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.d

使得CI在NetBeans 8.0中自动提示CI相关类和方法

把这两个文件放到项目文件根目录的nbproject文件夹下面,运行index.php如:http://localhost/你的CI目录/nbproject/index.php,之后重启netbeans.试试写$this->看后面出现什么!哈哈哈 index.php ===============================================  <?php$filearr = file('CI_Autocomplete_2.0.php');$startpos = array()

eclipse中Java编码的自动提示功能

在Eclipse中编程时自动提示功能很重要,但有的时候自动提示不会出现.需要在Eclipse中进行配置. 在Eclipse界面中打开Window -> Preferences,打开Preferences界面,然后选择Java -> Editor -> Content Assist,在"Auto Activation"中将"Auto Activation triggers for java"对应的内容由原来的点号"."改为&quo

关闭myeclipse中烦人的鼠标划过,自动提示功能

eclipse越来越智能,身为码农的我却越来越伤心.虽然你很智能,但请你提供一些有用的信息给我,不要乱七八槽的,不问青红皂白就塞一大堆提示给我,对不起,哥不需要这些!!! 都知道,使用myeclipse开发java,jsp,js时,鼠标划过某个类,对象,方法……会自动提示一些没有用的信息(至少对我来说),好烦人啊,终于到了忍无可忍的时候,决定将这没用的提示干掉,还我一个清静世界. 我的是myeclipse10.1,请先打开window->preferences 执行一下3步 1.java->e

Eclipse Android 代码自动提示功能

对于一个后端管理系统,最重要内容之一的就是登陆页了,无论是安全验证.用户在线记录.相关日志记录.单用户或多用户使用帐号控制等,都是在这个页面进行处理的. 1.在解决方案中创建一个Web项目,并将它设置为启动项 2.添加引用 3.添加WebManage文件夹与Login.aspx文件 4.添加登陆页面HTML代码 1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Login.aspx

Android搜索自动提示功能 AutocompleteTextView

1.配置main.xml中自动提示控件: <AutoCompleteTextView android:id="@+id/autotv_searchresult" android:layout_width="280dip" android:layout_height="35dip" android:layout_centerInParent="true" android:background="#00000000