solr 查询id不等于_Solr

d7eef613941543244908faad3559f27c.png

学习主题:Solr

学习目标:

1. Solr索引库-Solr的索引机制

(1) Solr索引库-Solr的索引机制

(2) 什么是倒排索引?

答:对数据进行分析,抽取出数据中的词条,以词条作为 key,对应数据的存储位置作为value,实现索引的存储

2. Solr索引库-配置中文分词器

(1) 中文分词器IK Analyzer的作用什么是?

答:进行中文分词用的

(2) 如何为Solr配置中文分词器?

上传中文分词器 jar 包,以及配置文件

将中文分词器的配置文件以及 jar包拷贝到 Solr 所对应的目录下

1905fe0411f53a9d0c187f1faaaf9427.png

44997a4f1fd705a68c9f3da4f3ea2338.png

dec817b06f9c4deaff911b3f4d76dcf0.png

在 schema.xml 中配置中文分词器

<fieldType name="text_ik" class="solr.TextField"> 
<analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/> 
</fieldType> 

3. Solr管理界面介绍

(1) Dashboard的作用是什么?

答:展示的都是一些solr的基本信息:Solr实例开始启动运行的时间、版本、系统资源、jvm等信息

(2) Logging的作用是什么?

答:显示 solr 运行出现的异常或错误

(3) Core Admin的作用是什么?

答:核心库的管理

(4) Java Properties的作用是什么?

答:Solr在JVM 运行环境中的属性信息

(5) Thread Dump的作用是什么?

答:查看每个线程的详细信息,以及状态信息

(6) Core Selecter(core选择器)的作用是什么?

答:选择核心库

(7) Core Selecter(core选择器)的作用是什么?

答:同上

(8) Analysis(分析)的作用是什么?

答:检验分词效果

(9) Dataimport(导入数据)的作用是什么?

答:可以定义数据导入处理器,从关系数据库将数据导入到Solr索引库中。默认没有配置,需要手工配置

(10) Documents的作用是什么?

答:Documents (索引文档)索引的相关操作,如:增加,修改,删除等

(11) Files文件夹的作用是什么?

答:solr_home 下的 core 下的 conf 下的相关文件,可单击查看里面的内容 (就是/usr/local/solrhome/solr/collection1/conf下的文件)

(12) Ping的作用是什么?

答:查看当前核心库还是否工作的以及响应时间

(13) Plugins /stats的作用是什么?

答:Solr 自带的一些插件以及我们安装的插件的信息以及统计

(14) Query(查询页面)的作用是什么?

答:查询

(15) Replication的作用是什么?

答:显示你当前 Core 的副本,并提供 disable/enable 功能

(16) Schema的作用是什么?

答:展示该 Core 的 shema.xml 文件中的内容

4. 测试SolrJ-创建项目添加依赖

(1) 什么是SolrJ?

答:solrJ 是访问 Solr 服务的 JAVA 客户端,提供索引和搜索的请求方法

5. 测试SolrJ-添加文档

(1) 如何通过SolrJ向索引库中添加文档?

package com.bjsxt.test;


import org.apache.solr.client.solrj.SolrServer;
import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.apache.solr.common.SolrInputDocument;

public class Test {
	public static void main(String[] args) throws Exception {
		solrInsert();
	}
	/**
	 * 向索引库中添加文档
	 * @throws Exception 
	 * @throws  
	 */
	public static void solrInsert() throws Exception {
		//创建solrJ的连接对象
		SolrServer server = new HttpSolrServer("http://192.168.63.133:8080/solr");
		//创建一个solr的文档对象
		SolrInputDocument docu = new SolrInputDocument();
		//向文档对象中添加我们要插入到索引库中的内容
		docu.addField("id", "OldLu");
		docu.addField("item_title", "老好了");
		docu.addField("item_price", 1000);
		//将为文档插入到solr的索引库中
		server.add(docu);
		
		//事务的提交
		server.commit();
	}
}

6. 测试SolrJ-删除文档

(1) 如何通过SolrJ删除索引库中的文档?

	/**
	 * 删除索引库中的文档
	 * @throws Exception 
	 * @throws  
	 */
	public static void solrDelete() throws Exception {
		//创建solrJ的连接对象
		SolrServer server = new HttpSolrServer("http://192.168.63.133:8080/solr");
		//给定删除条件
			//1.根据主键删除
//		server.deleteById("test");
			//2.根据查询删除
		server.deleteByQuery("*:*");//写条件
		
		server.commit();
	}

7. 测试SolrJ-查询文档

(1) 如何通过SolrJ查询索引库中的文档?

 	/**
	 * 查询索引库
	 * @throws Exception 
	 */
	public static void solrSearch() throws Exception {
		//创建solrJ的连接对象
		SolrServer server = new HttpSolrServer("http://192.168.63.133:8080/solr");
		
		//创建查询条件
		SolrQuery query = new SolrQuery();
		//给定查询的内容
		query.setQuery("老好了0");
		//去哪个field里面查	df:default field
		query.set("df", "item_keywords");
		
		//设置分页
		query.setStart(0);
		query.setRows(10);
		
		//执行查询
		//QueryResponse:封装了查询的结果集
		QueryResponse res = server.query(query);
		
		SolrDocumentList list = res.getResults();
		//list.getNumFound():数据的总条数
		System.out.println("数据的总条数:"+list.getNumFound());
		for (SolrDocument solrDocument : list) {
			System.out.println(solrDocument.get("item_title"));
			System.out.println(solrDocument.get("item_price"));
		}
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值