‘壹’ solrcloud 在windows可以集群吗
solrcloud5.2.1+zookeeper一部精通讲师:夜行侠课程介绍:/s/1g9FMu密码:h4kc课程介绍一、课程使用到的软件及版本:centos系统,solr5.2.1,zookeeper3.4.6二、课程大纲1、zookeeper集群搭建,以及配置信息,zookeeper客户端命令讲解2、solrcloud在生产环境下的搭建3、创建collection,如何动态加载配置到zookeeper中,以及schema的详解4、solr索引文件夹,uuid与uniqueKey的讲解,如何使用uuid自动生成uniqueKey5、solrDIH导入mysql数据6、mysql的增量导入,以及各种datasource的讲解7、ik分词器8、详细讲解文档的Fields以及solrconfig.xml的相关配置,以及solrweb管理界面描述(上)9、solrweb管理界面描述(下)10、solrspellcheck以及solr源码转maven项目11、solr的UTC时间修改,ik分词器源码修改动态加载分词,停顿词(上)12、ik分词器源码修改动态加载分词,停顿词(下)13、solrj与springMVC整合14、springsolrj的简单增删改查,权重设置15、springsolrj的Faceting搜索Highlighting高亮(上)16、springsolrj的Faceting搜索Highlighting高亮(下)17、solr的近实时索引搜索以及实时索引搜索,搜索平台架构的详细剖析------------------------------
‘贰’ solrj 怎么样把查询数据返回到前端
1、首先,我比较懒。我把 apache-solr-3.6.1/dist 目录下所有的包导入到了工程中,除了war包。
2、下面来看看代码,里面都有注释,其它就不多说了
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrServer;
import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.SolrDocumentList;
public class SolrJUtils {
private static final String baseURL = "http://192.168.241.128:8080/solr";// solr服务器url
private static SolrServer solrServer = new HttpSolrServer(baseURL);
public static void search() {
SolrQuery params = new SolrQuery();
// 查询关键词,*:*代表所有属性、所有值,即所有index
// params.set("q", "*:*");
params.set("q", "nickname:chm*");// 查询nickname是已chm开头的数据
// 分页,start=0就是从0开始,,rows=5当前返回5条记录,第二页就是变化start这个值为5就可以了。
params.set("start", 0);
params.set("rows", 5);
// 按nickname排序,asc升序 desc降序
params.set("sort", "nickname asc");
try {
QueryResponse rsp = solrServer.query(params);
SolrDocumentList docs = rsp.getResults();
System.out.println("文档个数:" + docs.getNumFound());
System.out.println("查询时间:" + rsp.getQTime());
for (SolrDocument doc : docs) {
String name = (String) doc.getFieldValue("nickname");
System.out.println(name);
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
SolrJUtils.search();//实际应用过程中可以根据自身需要传参
}
}
好了,一般开发都是用查询功能的,索引的更新基本上都是使用
crond。
‘叁’ org.apache.solr.client.solrj.beans.field这是什么包
Solrj是Solr搜索服务器的一个比较基础的客户端工具,可以非常方便地与Solr搜索服务器进行交互。最基本的功能就是管理Solr索引,包括添加、更新、删除和查询等。
对于一些比较基础的应用,用Solj基本够用,而且你可以非常容易地通过使用Solrj的API实现与Solr搜索服务器进行交互,实现对Solr的基本管理功能。
如果你的应用比较复杂,可以扩展Solrj来满足需要。
‘肆’ solr提供的源码怎么打成jar包
1、将解压包中的solr-4.7.1/dist/solr-4.7.1.war复制到tomcat_dir/webapps/目录,并命名为solr.war。 2、将solr-4.7.1/example/lib/ext/目录下的jar文件复制到tomcat/lib目录下,将solr-4.7.1/example/resources/下的log4j.properties文件复制到...
‘伍’ SolrJ 怎么获取IK中文分词结果
IKAnalyzer中文分词器是开源的java工具包,你可以详细读里面的源码。其词典存储用的是txt文件
‘陆’ solr如何实现多语言搜索
ANT_HOME:E:\Work\apache-ant\1.9.1 (这里为你自己解压缩的目录) PATH:%ANT_HOME%\bin (这个设置是为了方便在dos环境下操作)
查看是否安装成功,在命令行窗口中输入命令ant,若出现结果:
说明ant安装成功!因为ant默认运行build.xml文件,这个文件需要我们建立。现在就可以进行build Solr源码了。在命令行窗口中进入到你的Solr源码目录,输入ant会出现当前build.xml使用提示信息。
其它的先不用管它,我们只要针对我们使用的IDE进行build就行了,如果使用eclipse就在命令行输入:ant eclipse.如果使用IntelliJ IDEA 就在命令行输入:ant idea。这样就能进行build了
‘柒’ 如何在eclipse中部署solr的web工程
1.新建Dynamic Web project项目
2.删除WebContent下面的所有内容,并将apache-solr-3.5.0.war(下载dist文件夹中)所有内容复制到WebContent下面。
3.指定solrHome,在web.xml中添加以下内容
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>d:/</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
在这里指定solrHome=d:/
4.在d盘下配置solr cores(和solrHome对应),在d盘下新建solr.xml,内容如下:
<?xml version="1.0"encoding="UTF-8"?>
<solr persistent="false">
<!--
adminPath: RequestHandler path to manage cores.
If 'null'(or absent), cores will not be manageable via request handler
-->
<cores adminPath="/admin/cores">
<core name="core0" instanceDir="D:/solrHome2/multicore/core0" />
<core name="core1" instanceDir="D:/solrHome2/multicore/core1" />
</cores>
</solr>
5.从example下拷贝multicore到D:/solrHome2下
6.在eclipse中启动solr
servers窗口->new Server->选择一个server runtime enviroment->add 项目
‘捌’ solrj的CloudSolrClient源码分析及为什么查询慢
solrj针对solrcloud提供了CloudSolrClient,用于对集群环境solr操作,从一个测试例子,一步步深入,看看CloudSolrClient是如何做查询操作的
1、使用CloudSolrClient发起一个查询请求
2、接着调用CloudSolrClient的request方法
3、CloudSolrClient的request方法中,首先回去获取请求中的collection名字,如果没有,获取默认设置的collcetion,然后调用requestWithRetryOnStaleState方法
4、requestWithRetryOnStaleState方法中,先去连接zk获取solrclound注册在zk上的信息
5、获取zk上的信息,经过处理后,封装到request中,调用sendRequest方法
6、在sendRequest中,会获取每个片的每个replicat的url与注册在zk上的live url做一个交集,得到一个查询url集合,然后创建一个LBHttpSolrClient,请求solrcloud
7、LBHttpSolrClient的request中会在for循环中挨个的轮询上一个步骤中放入的urllist发起http查询请求
在rsp合并结果,并返回
‘玖’ solr组件的角色有哪些
Solr它是一种开放源码的、基于 Lucene Java 的搜索服务器,易于加入到 Web 应用程序中。
二、Solr 提供了层面搜索(就是统计)、命中醒目显示并且支持多种输出格式(包括XML/XSLT 和JSON等格式)。它易于安装和配置,而且附带了一个基于 HTTP 的
管理界面。Solr已经在众多大型的网站中使用,较为成熟和稳定。
三、Solr 包装并扩展了 Lucene,所以Solr的基本上沿用了Lucene的相关术语。更重要的是,Solr 创建的索引与 Lucene 搜索引擎库完全兼容。
四、通过对Solr 进行适当的配置,某些情况下可能需要进行编码,Solr 可以阅读和使用构建到其他 Lucene 应用程序中的索引。
五、此外,很多 Lucene 工具(如Nutch、 Luke)也可以使用Solr 创建的索引。可以使用 Solr 的表现优异的基本搜索功能,也可以对它进行扩展从而满足企业的需要。
solr的优点
通过上面Solr的简介,可知solr的优点包括以下几个方面:
①高级的全文搜索功能;
②专为高通量的网络流量进行的优化;
③基于开放接口(XML和HTTP)的标准;
④综合的HTML管理界面;
⑤可伸缩性-能够有效地复制到另外一个Solr搜索服务器;
⑥使用XML配置达到灵活性和适配性;
⑦可扩展的插件体系。
solr VS Lucene!?
在比较solr和Lucene之前,要知道什么是Lucene,那么首先就来回顾Lucene是个什么东东?
Lucene是一个基于Java的全文信息检索工具包,它不是一个完整的搜索应用程序,而是为你的应用程序提供索引和搜索功能。Lucene 目前是 Apache Jakarta(雅加达) 家族中的一个开源项目。也是目前最为流行的基于Java开源全文检索工具包。目前已经有很多应用程序的搜索功能是基于 Lucene ,比如Eclipse 帮助系统的搜 索功能。Lucene能够为文本类型的数据建立索引,所以你只要把你要索引的数据格式转化的文本格式,Lucene 就能对你的文档进行索引和搜索。
那么,solr和它相比,是”输“了?还是“赢”了呢?
其实,Solr与Lucene 并不是竞争对立关系,恰恰相反Solr 依存于Lucene,因为Solr底层的核心技术是使用Lucene 来实现的,Solr和Lucene的本质区别有以下三点:搜索服务器,企业级和管理。Lucene本质上是搜索库,不是独立的应用程序,而Solr是。Lucene专注于搜索底层的建设,而Solr专注于企业应用。Lucene不负责支撑搜索服务所必须的管理,而Solr负责。所以说,一句话概括 Solr: Solr是Lucene面向企业搜索应用的扩展。
下面是solr和 lucene的架构图:
这个图很繁琐,看不懂,大家不要灰心,在后面的代码里你就能够了解了这个图所讲的。
不难看出,绿色的就是lucene的模块,而蓝色的就是solr扩展了lucene。从图上可以看出以下几点:
a. 一个真正的拥有动态字段(Dynamic Field)和唯一键(Unique Key)的数据模式(Data Schema)
b. 对Lucene查询语言的强大扩展!
c. 支持对结果进行动态的分组和过滤
d. 高级的,可配置的文本分析
e. 高度可配置和可扩展的缓存机制
f. 性能优化
g. 支持通过XML进行外部配置
h. 拥有一个管理界面
i. 可监控的日志
j. 支持高速增量式更新(Fast incremental Updates)和快照发布(Snapshot Distribution)
说到这,solr的简介就到此结束了,相信大家也对solr有了初步的了解,下面开始介绍一下solr的常用属性有哪些?
solr的使用属性及配置文件
Document 包括一个或多个 Field。Field 包括名称、内容以及告诉 Solr 如何处理内容的元数据。
例如,Field可以包含字符串、数字、布尔值或者日期,也可以包含你想添加的任何类型,只需用在solr的配置文件中进行相应的配置即可。Field可以使用大量的选项来描述,这些
选项告诉 Solr 在索引和搜索期间如何处理内容。
现在,查看以下图片 中列出的重要属性的子集:
在这就先提一下solr的重要文件之一,就是schema.xml的配置文件。
(一) schema.xml
schema.xml这个配置文件可以在你下载solr包的安装解压目录的\solr\example\solr\collection1\conf中找到,它就是solr模式关联的文件。
打开这个配置文件,你会发现有详细的注释。模式组织主要分为三个重要配置:
一、Fieldtype
Fieldtype:就是属性类型的意思,像int,String,Boolean种类型,而在此配置文件中,FieldType就有这种定义属性的功能,看下面的图片:
图片上有我们熟悉的int,String,boolean,那么,后面的配置,是什么呢?那么我们就来介绍一下后面的参数:
二、Field
Field:是添加到索引文件中出现的属性名称,而声明类型就需要用到上面的type,如图所示:
ps:①field: 固定的字段设置;②dynamicField: 动态的字段设置,用于后期自定义字段,*号通配符.例如: test_i就是int类型的动态字段。
还有一个特殊的字段Field,一般用于检索时用的字段这样就只对这一个字段进行索引分词就行了Field的dest字段如果有多个source一定要设置