Solr笔记(一)
来源:互联网 发布:淘宝网商城首页女装 编辑:程序博客网 时间:2024/05/21 09:48
简介
Solr是一个独立的企业级搜索应用服务器,它对外提供类似Web-service的API接口。
用户可以通过HTTP的POST请求,向Solr服务器提交一定格式的XML或者JSON文件,Solr服务器解析文件之后,根据具体需求对索引库执行增删改操作
用户可以通过HTTP的GET请求,向Solr服务器发送搜索请求,并得到XML/JSON格式的返回结果。
Solr是Apache下的一个顶级开源项目,采用java开发,基于Lucene。Solr可以独立运行在Jetty(java开发的,轻量级的)、Tomcat等这些Servlet容器中。
Solr提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展,并对索引、搜索性能进行了优化。
solr和Lucene区别
Solr的目标是打造一款企业级的搜索引擎系统,它是基于Lucene一个搜索引擎服务器,可以独立运行,通过Solr可以非常快速的构建企业的搜索引擎,通过Solr也可以高效的完成站内搜索功能。
solr目录详解
example:solr工程的例子目录:
l example/solr:
该目录是一个标准的SolrHome,它包含一个默认的SolrCore
l example/multicore:
该目录包含了在Solr的multicore中设置的多个Core目录。
l example/webapps:
该目录中包括一个solr.war,该war可作为solr的运行实例工程。
licenses:solr相关的一些许可信息
solrHome和solrCore
在solr解压包下solr-4.10.3\example\solr文件夹就是一个标准的SolrHome,只需要将它复制到指定的目录下即可,该SolrHome中默认有个名称为collection1的SolrCore。
配置SolrCore
其实就是配置SolrCore目录下的conf/solrconfig.xml。
这个文件是来配置SolrCore实例的相关运行时信息。如果使用默认配置可以不用做任何修改。该配置文件中包含了不少标签,但是我们经常使用的标签有:lib标签、datadir标签、requestHandler标签。
lib标签
比如solr自身没有『数据导入索引库』功能,如果需要使用,则首先要把这些jar复制到指定的目录,然后通过该配置文件进行相关配置
datadir标签
requestHandler标签
通过/update维护索引,可以完成索引的添加、修改、删除操作。
通过/select搜索索引。
设置搜索参数完成搜索,搜索参数也可以设置一些默认值,如下:
<requestHandler name="/select" class="solr.SearchHandler"> <!-- 设置默认的参数值,可以在请求地址中修改这些参数--> <lst name="defaults"> <str name="echoParams">explicit</str> <int name="rows">10</int><!--显示数量--> <str name="wt">json</str><!--显示格式--> <str name="df">text</str><!--默认搜索字段--> </lst></requestHandler>
找到solr.war,放到tomcat的webapps下,然后打开配置文件web.xml,配置solr包里面的SolrHome
<env-entry> <env-entry-name>solr/home</env-entry-name> <env-entry-value>F:\solr</env-entry-value> <env-entry-type>java.lang.String</env-entry-type> </env-entry>
注意把ext扩展包也导入,一共50个包。运行tomcat
管理界面功能介绍
Dashboard
Logging
Cloud
Core Admin
java properties
Thead Dump
Core selector
Analysis
dataimport
Document
通过/update表示更新索引,solr默认根据id(唯一约束)域来更新Document的内容,如果根据id值搜索不到id域则会执行添加操作,如果找到则更新。
通过此菜单可以创建索引、更新索引、删除索引等操作,界面如下:
commitWithin="1000" : solr 在做索引的时候,每隔1000(1秒)毫秒,做一次文档提交。为了方便测试也可以在Document中立即提交,</doc>后添加“<commit/>”
query
Solrj
public class CreateIndexTest {// solr服务器的基础URL路径private String baseURL = "http://localhost:8080/solr/";// HttpSolrServer对象,该对象负责与远程的solr服务器进行交互private HttpSolrServer solrServer = new HttpSolrServer(baseURL);@Testpublic void testCreateAndUpdateIndex() throws Exception {SolrInputDocument doc = new SolrInputDocument();doc.addField("id", "c001");doc.addField("content", "测试solrj添加操作02");// 调用SolrServer的API完成索引库的增删改查操作solrServer.add(doc);// 提交solrServer.commit();}@Testpublic void testDeleteIndex() throws Exception {// 根据ID删除// solrServer.deleteById("c001");// 根据查询对象删除solrServer.deleteByQuery("id:change.me");// 删除所有solrServer.deleteByQuery("*:*");// 提交solrServer.commit();}}
- Solr笔记(一)
- Solr学习笔记(一)Solr的安装
- solr学习笔记(一):入门
- Lucene/Solr学习笔记(一)
- solr笔记一
- solr学习笔记(一)
- Solr学习笔记一 ---Solr运行环境搭建(tomcat7 + solr 3.5 +ubuntu 10.04)
- Solr笔记一 之Solr介绍
- solr4.5笔记(一)—— solr的部署
- Apache Pig和Solr问题笔记(一)
- Solr 简介(一)
- Solr云(一)
- (一)Solr介绍
- Solr学习(一)
- Solr学习总结(一)Solr介绍
- Solr(一)——初识Solr
- solr笔记(二)
- solr环境搭建(一)
- 无缝滚动效果
- nginx简单实现负载均衡
- 避免创建不必要的对象
- Shell 脚本语言基本知识
- Ubuntu 16.04系统下 Docker 的卸载与安装
- Solr笔记(一)
- HTML制作分享到QQ空间,微信,新浪等效果
- 集合Collection学习
- Hive 将查询语句转存到Map字段
- Hive的API操作
- Linux用户与用户组详解
- updating homebrew
- 【算法竞赛入门经典】7.3子集生成【增量构造法】【位向量法】【二进制法】
- Python 列表(List)