java操作solr实现索引,查询,删除,拼写检查等功能


使用java操作solr

前面讲了很多对solr的操作都是直接在页面上操作的,实际工作中肯定是要使用java进行操作的,在这我们就看一下如何使用java来操作solr

Solr提供了solrj来使用java操作solr,SolrJ是封装了httpClient方法,来操作solr的API的。首先添加maven依赖

<dependency>

<groupId>org.apache.solr</groupId>

<artifactId>solr-solrj</artifactId>

<version>4.10.4</version>

</dependency>

还要添加junit4的maven依赖

<dependency>

<groupId>junit</groupId>

<artifactId>junit</artifactId>

<version>4.12</version>

</dependency>

查询query

下面就可以写代码了,新建一个testSolr类,

执行的时候发现报错,是因为缺少common-logging的包,添加对应的maven依赖

<dependency>

<groupId>commons-logging</groupId>

<artifactId>commons-logging</artifactId>

<version>1.1.1</version>

</dependency>

这样的话就可以把collection1这个索引库里面的数据打印出来了,因为查询条件是*:*

在这要注意这个baseurl,默认情况下,如果操作collection1里面的数据的话不需要指定就可以,默认就会操作collection1这个索引库。

所以上面的两个baseurl的效果是一样的。

索引index

使用add方法,可以向solr中添加一条数据。

注解方式建立索引

在实际工作中,如果在建立索引的时候让我们一个属性一个属性的设置是很麻烦的,一般都是直接使用一个对象,这样使用起来也很方便。

首先创建一个实体类,主要注意里面的字段要添加一个注解,如果不添加的话solr是不能识别的。

这样就可以把这个对象在solr中建立索引了。

删除索引delete

可以根据ID进行删除,或者根据查询条件进行删除。

拼写检查spellcheck

设置查询的handler,修改为/spell,获取查询结果,如果查询结果为0,则说明没有查询到结果,可能就是输入的查询关键字有错误,这样就可以根据getspellcheckresponse方法获取拼写检查的response,根据这个response的一些方法就可以获取到建议的结果。

可以根据下面的方式获取建议的结果。在这是从collation中获取结果。

或者根据下面的方法获取建议结果。在这是从suggestion中获取结果。

上面的两种方式都可以获取建议拼写的结果。

更多精彩内容请关注:http://bbs.superwu.cn

关注超人学院微信二维码:

时间: 2024-08-15 13:14:10

java操作solr实现索引,查询,删除,拼写检查等功能的相关文章

solr入门之多线程操作solr中索引字段的解决

涉及的问题: 建索引时有一个字段是该词语出现的次数,这个字段是放在solr里的 而我用的是多线程来进行全量导入的,这里就涉及到了多线程问题 多个线程操作同一个变量时如何处理? 我是这样子做的 : 首先将变量本地话--分布式就放到大容器中,我这里仅仅使用了一个map来存 词和次数的关系映射 变量本地化后就是多线程的解决了--锁的设置-我仅仅是在操作时加了一个锁来解决这个问题 这样做后总体上应该能解决变量的问题了 最后还有一个线程顺序问题要解决下 当 最后一个提交索引时 获取的索引不一定是正确的索引

java操作数据库:分页查询

直接上.... 还是用之前的goods表,增加了一些数据 1.实体类Goods // 封装数据 public class Goods { private int gid; private String gname; private String gprice; private String gdate; public int getGid() { return gid; } public void setGid(int gid) { this.gid = gid; } public String

java操作数组转list集合删除元素报错ConcurrentModificationException

public static void main(String[] args) { ArrayList<String> list = new ArrayList<String>(Arrays.asList("a", "b", "c", "d")); for (int i = 0; i < list.size(); i++) { list.remove(i); } System.out.println

Java的solr操作实现

JAVA操作solr的实现其实很简单,但是很多细节要注意,在实际的开发中,很多人喜欢自己封装这些基础的方法以一个全新的“面貌”出现,其实都是一回事,操作熟了自然就会想到将一些实现功能用到的方法重新封装,这也是编程进阶的表现. SolrJ的使用 SolrJ覆盖了solr的全部功能,下面将自己在实际开发中所使用的程序粘贴出来并适当加以解释,由于本人比较菜,代码书写不是那么的精练,还请见谅. 1.  创建solrserver对象: try { solr = new CommonsHttpSolrSer

solr入门之solr的拼写检查功能的应用级别尝试

今天主要是收集了些拼写检查方面的资料和 尝试使用一下拼写检查的功能--=遇到了不少问题 拼写检查的四种配置目前我只算是成功了半个吧 --------------------------------- 拼写检查功能,能在搜索时,提供一个较好用户体验,所以,主流的搜索引擎都有这个功能.在这之前,笔者先简单的说一下什么是拼写检查,其实很好理解,就是你输入的搜索词,可能是你输错了,也有可能在它的检索库里面根本不存在这个词,但是这时候它能给你返回,相似或相近的结果来帮助你校正. 举个例子,假如你在百度里面

java:solr

1.solr(数据导入solr自带数据库):   ImportItemController.java: package com.solr.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotat

solr特点四: SpellCheck(拼写检查)

接下来,我将介绍如何向应用程序添加 “您是不是要找……”(拼写检查). 提供拼写建议 Lucene 和 Solr 很久以前就开始提供拼写检查功能了,但直到添加了 SearchComponent架构之后,这些功能才可以无缝使用.现在您可以输入一个查询,让它不仅返回查询结果,并且为查询词语提供拼写建议(如果存在的话).然后可以利用这些建议像 Google 那样显示 “您是不是要找……”,或者像 Yahoo! 那样显示 “请尝试……”. 集成拼写检查的妙处在于它能够(而且必须)根据索引中的标记给出建议

solr拼写检查配置

拼写检查功能,能在搜索时,提供一个较好用户体验,所以,主流的搜索引擎都有这个功能. 那么什么是拼写检查,其实很好理解,就是你输入的搜索词,可能是你输错了,也有可能在它的检索库里面根本不存在这个词,但是这时候它能给你返回,相似或相近的结果来帮助你校正.举个例子,假如你在百度里面输入在在线电瓶,可能它的索引库里面就没有,但是它有可能返回在线电影,在线电视,在线观看等等一些词,这些,就用到拼写检查的功能了. solr是一个基于lucene开发接口实现的成熟的搜索系统,通过不同的控件(Component

搜索拼写检查

一.拼写检查的目的 拼写检查功能,能在搜索时,提供一个较好用户体验,所以,主流的搜索引擎都有这个功能. 那么什么是拼写检查,其实很好理解,就是你输入的搜索词,可能是你输错了,也有可能在它的检索库里面根本不存在这个词,但是这时候它能给你返回,相似或相近的结果来帮助你校正. 举个例子,假如你在百度里面输入在在线电瓶,可能它的索引库里面就没有,但是它有可能返回在线电影,在线电视,在线观看等等一些词,这些,就用到拼写检查的功能了.如下图: 二.搜索拼写检查现状 solr搜索系统提供了基本的关键词提示功能