solr5.x快速入门

阅读更多

 

转载请声明出处,谢谢。翻译也很辛苦 

 

 

solr学习交流扣扣群340954928

 

  

快速开始

 

Solr为程序员开发复杂,高性能与先进的搜索应用程序功能,如分类(安排搜索结果列数值项关键术语)Solr建立在另一个开源搜索技术:Lucene,一个Java,提供索引和搜索技术,拼写检查,达到强调和先进的分析/标记功能。LuceneSolr管理的Apache软件基金会(www.apache.org)

 

Lucene搜索库目前排名前15名的开源项目,Apache的前5位项目,安装超过4000家公司。LuceneSolr下载增长近10倍过去的三年里,与当前的增长率每天超过6000次的下载。Solr搜索服务器,它提供了应用程序生成器的搜索平台上的Lucene搜索库,是增长最快的Lucene子项目。Apache LuceneSolr提供专有许可搜索和一个有吸引力的选择发现软件供应商。

 

 

这部分帮助你得到Solr快速启动和运行,并向您介绍基本的Solr架构和特性。它涵盖了以下主题:

安装Solr:预排Solr的安装过程。

运行Solr:介绍运行Solr。包括启动服务器的信息,添加文件,并运行查询。

一个快速概述:Solr是如何工作的高级概述。

一步:介绍Solr的主目录和配置选项。

Solr启动脚本参考:一个完整的引用的所有命令和选项bin / Solr脚本。

 

Installing Solr

本节描述如何安装Solr。你可以安装Solr在任何系统合适的Java运行时环境(JRE),如下详细。目前这包括Linux OS X,和微软的Windows。的指令在本节应适用于任何平台,除了少数例外Windows如上所述。

 

Got Java?

你需要Java运行时环境(JRE)版本1.7或更高版本。在命令行,核对你的Java版本是这样的:

$ java -version

java version "1.7.0_55"

Java(TM) SE Runtime Environment (build 1.7.0_55-b13)

Java HotSpot(TM) 64-Bit Server VM (build 24.55-b03, mixed mode)

 

输出会有所不同,但你需要确保你有版本1.7或更高版本。如果你没有要求版本,或者没有找到java命令,从甲骨文在http://www.oracle上下载并安装最新版本

.com/technetwork/java/javase/downloads/index.html

 

Installing Solr

Solr网站http://lucene.apache.org/solr/ Solr是可用的。

对于Linux / Unix / OSX系统,下载。tgz文件。为微软的Windows操作系统,下载。zip文件。

开始时,所有你需要做的就是提取Solr分配归档到你选择的目录中。当你准备安装Solr的生产环境中,请参考提供的指令采取Solr产品页面。为了简单起见,提取Solr分布归档到本地的家目录中,例如在Linux,:

 

$ cd ~/

$ tar zxf solr-5.0.0.tgz

一旦提取,现在可以使用提供的指令运行Solr运行Solr部分。

 

Running Solr

本节描述如何运行Solr模式的一个例子,如何添加文件,以及如何运行查询。

 

Start the Server

如果你没有开始Solr安装后,您可以通过运行开始bin / Solr Solr的目录。

 

$ bin/solr start

 

如果你运行的是Windows,你可以开始通过运行本\ Solr Solrcmd

bin\solr.cmd start

 

这将启动Solr在背景中,监听端口8983

当你开始在后台Solr,脚本将等待确保Solr开始正确,然后返回命令行提示符。

 

bin / solrbin \ solrcmd脚本允许您自定义如何启动Solr。让我们通过一些工作的例子使用bin / solr脚本(如果你在Windows上运行solr,bin \ solrcmd一样工作下面的示例所示):

 

Solr Script Options

bin / solr脚本有几个选项。

Script Help

了解如何使用bin / solr脚本,执行:

$ bin/solr -help

 

具体使用说明一开始命令,:

$ bin/solr start -help

 

启动Solr在前台

由于Solr服务器,更常见的在后台运行它,尤其是在Unix / Linux。然而,Solr在前台开始,简单的做:

 

$ bin/solr start -f

 

如果是windos运行

bin\solr.cmd start -f

 

 

用不同的端口启动Solr

改变Solr监听端口,您可以使用- p参数开始时,:

$ bin/solr start -p 8984

 

Stop Solr

 

当运行Solr在前台(使用- f),然后你就可以使用ctrl - c停止它。然而,当在运行背景,你应该使用停止命令,:

$ bin/solr stop -p 8983

 

停止命令要求您指定端口Solr监听或者您也可以使用——停止所有参数运行Solr实例。

 

启动Solr与特定的示例配置

Solr还提供了很多有用的例子来帮助你了解关键特性。你可以启动实例使用- e标志。例如,推出科技产品的例子中,你会做什么:

 

$ bin/solr -e techproducts

 

目前,可用的例子,你可以使用 techproducts, dih, schemaless, and cloud.

 

开始使用SolrCloud

云例子开始在SolrCloud Solr模式下运行。关于启动Solr在云的更多信息模式,看到:开始使用SolrCloud

 

检查是否运行Solr

如果你不确定如果Solr在本地运行,您可以使用status命令:

$ bin/solr status

 

这将寻找在你的电脑上,然后运行Solr实例收集基本信息,如和内存使用的版本。

这是它!Solr正在运行。如果你需要令人信服的,使用一个Web浏览器查看管理控制台。

http://localhost:8983 / solr /

 

 

如果Solr没有运行,浏览器会抱怨它无法连接到服务器。检查你的端口号和尝试一次。

 

Create a Core

如果你没有开始Solr提供一个配置示例,您将需要创建一个核心为了能够索引和搜索。你可以通过运行:

$ bin/solr create -c

 

这将创建一个使用一个数据驱动模式的核心,试图猜测正确的字段类型当您添加文档的索引。

看到所有可用选项创建一个新的核心,执行:

$ bin/solr create -help

 

Add Documents

Solr是建立找到文档匹配查询。Solr的模式提供了一个如何结构化(更多内容的想法模式之后),但没有文件没有找到。Solr需要输入才能做得。

 

你可能想添加一些样本文档之前试图指数您自己的内容。Solr安装时用不同类型的示例文件位于的例子/目录的子目录下

 

bin /目录中的脚本,一个命令行工具,可以用于不同类型的索引文档。不要过于担心细节。索引和基本的数据操作部分所有的细节在索引。

 

看一些关于使用bin /职位的信息,使用- help选项。

 

bin / Solr后可以发布各种类型的内容,包括文件Solr的原生XMLJSON格式,CSV文件,丰富的文档的目录树,甚至一个简单的短web爬行。看到的例子在bin /职位Apache Solr参考指南5.0 8-对各种命令到容易开始发布内容到Solr

 

继续添加一些JSON文件中的所有文档:

$ bin/post -c gettingstarted example/exampledocs/*.json

SimplePostTool version 5.0.0

Posting files to [base] url http://localhost:8983/solr/gettingstarted/update...

Entering auto mode. File endings considered are

xml,json,csv,pdf,doc,docx,ppt,pptx,xls,xlsx,odt,odp,ods,ott,otp,ots,rtf,htm,html,txt,l

og

POSTing file books.json (application/json) to [base]

1 files indexed.

COMMITting Solr index changes to http://localhost:8983/solr/gettingstarted/update...

Time spent: 0:00:00.450

 

这是它!Solr索引文件中包含这些文件。

 

Ask Questions

 

现在您已经索引文件,您可以执行查询。最简单的方法是通过构建一个URL包括查询参数。这是完全相同的作为构建其他HTTP URL

 

例如,下面的查询搜索所有文档字段为视频”:

http://localhost:8983/solr/gettingstarted/select?q=video

 

注意URL包括主机名(localhost),服务器正在监听的端口号(8983)应用程序名称(solr),查询的请求处理程序(选择),最后,查询本身(q =视频)

 

结果中包含一个XML文档,您可以检查直接点击上面的链接。的文档包含两个部分。第一部分是responseHeader,其中包含的信息的反应本身。应答的主要部分是在结果标记,它包含一个或多个文档标记,每一种都包含查询字段相匹配的文档。您可以使用标准的模具SolrXML转换技术成一种适用于结果显示给用户。另外,Solr可以在JSON输出结果,PHP,Ruby,甚至用户定义格式。

 

以防你没有运行Solr当你阅读的时候,下面的屏幕截图显示了一个查询的结果(下一个例子,实际上在Mozilla Firefox)认为。顶级响应包含一个名为responseHeaderlstnd命名的反应结果。在结果中,您可以看到三个代表搜索结果的文档。

 

 

一旦你掌握了查询的基本理念,很容易添加增强探索查询语法。这和之前是一样的但是结果只包含ID、名称和价格为每一个返回的文档。如果你不指定你想要哪些字段,他们所有的人都回来了。

 

http://localhost:8983/solr/gettingstarted/select?q=video&fl=id,name,price

 

这里是另一个例子,搜索黑色的名称字段。如果你不告诉Solr哪个字段搜索时,它将搜索默认字段,指定的模式。

 

http://localhost:8983/solr/gettingstarted/select?q=name:black

 

你可以提供范围字段。以下查询发现每个文档的价格是0400美元之间。

http://localhost:8983/solr/gettingstarted/select?q=price:[0%20TO%20400]&fl=id,name,prIce

 

在上雕琢平面的浏览是Solr的关键特性之一。它允许用户缩小搜索结果有意义的方式Apache Solr参考指南5.0 10到您的应用程序。例如,一个购物网站可以提供由制造商或缩小搜索结果方面价格。

 

分类信息作为第三部分Solr的查询返回响应。这种权力的滋味,看一看下面的查询。它增加了面= truefacet.field =猫。

http://localhost:8983/solr/gettingstarted/select?q=price:[0%20TO%20400]&fl=id,name,price&facet=true&facet.field=cat

 

除了熟悉responseHeader和响应从Solr facet_counts元素也在场。这里是一个视图与responseHeader和响应倒塌,这样你就可以清楚地看到分类信息。

...

SOLR1000

Solr, the Enterprise Search Server

0.0

...

6

3

2

2

1

1

1

1

1

1

0

0

0

0

0

 

 

方面的信息查询结果的显示有多少猫的每个可能值字段。你可以轻松地使用这些信息来为用户提供一个快速的方法来缩小他们的查询结果。您可以过滤结果添加一个或多个过滤查询Solr请求。这是一个请求进一步限制请求文档软件的一个类别。

 

http://localhost:8983/solr/gettingstarted/select?q=price:0%20TO%20400&fl=id,name,price&facet=true&facet.field=cat&fq=cat:software

 

一个快速概述

Solr有一些乐趣,你将了解所有酷的事情可以做。

这里是一个例子,Solr如何集成到一个应用程序:

 

在上面的场景中,Solr沿着其他服务器应用程序。例如,在线商店应用程序提供一个用户界面,一个购物车,使最终用户购买;而一个库存管理应用程序将允许店员对产品信息进行编辑。该产品将元数据保存在某种数据库,以及在Solr

 

Solr便于添加功能来搜索在线商店通过以下步骤:

定义一个模式。模式告诉Solr文档将被索引的内容。在网络商店的例子中,模式将为产品名称定义字段,描述,价格,厂家,所以上。Solr模式是强大和灵活的,允许您定制Solr的行为对您的应用程序。看到医生uments、字段和模式设计的所有细节。

Solr部署到应用程序服务器。

饲料Solr文档的用户会搜索。

暴露在应用程序中搜索功能。

 

 

因为Solr是基于开放的标准,它是高度可扩展的。Solr查询是宁静的,这意味着,在本质,查询是一个简单的HTTP请求URL和响应是一个结构化的文档:主要是XML,但它也可能是JSON,CSV或其他格式。这意味着,各种各样的客户将能够使用Solr,从其他web应用程序的浏览器客户端,富客户端应用程序和移动设备。任何平台的能力

HTTP可以与Solr。有关详细信息,请参阅客户端api客户机api

 

Solr是基于Apache Lucene项目,一个高性能、功能全面的搜索引擎。Solr提供了支持最简单的关键字搜索复杂查询在多个领域和在上雕琢平面的搜索结果。搜索有更多的信息搜索和查询。

 

如果Solr的能力不足够令人印象深刻,其处理能力非常大容量的应用程序应该足够了。

 

比较常见的场景是,你有这么多数据,或者很多查询,一个Solr服务器不能处理你的整个工作负载。在这种情况下,您可以使用SolrCloud扩展应用程序的功能更好地分配数据和请求的处理,在许多服务器。可以混合和多个选项匹配根据你需要的类型的可伸缩性。

 

例如:“分片是一个扩展技术,分割成多个逻辑块被称为集合碎片为了扩大集合中的文档的数量超出了可能会对一个身体健康服务器。传入的查询在收集、分发给每一个碎片,应对合并结果。可用另一种方法是增加复制因素的集合,它允许您添加服务器使用额外的副本集合来处理高并发查询负载通过传播的请求多台机器。分片和复制并不是相互排斥的,一起让Solr非常强大的和可扩展的平台。

 

最重要的是,这种谈论高容量应用程序不仅仅是假设:一些著名的网站使用Solr如今梅西百货、EBayZappo

 

有关更多信息,看看https://wiki.apache.org/solr/PublicServers

 

又近了一步

你已经有一些想法的Solr模式。本节描述Solr的主目录和其他配置选项。

 

Solr在应用程序服务器运行时,需要访问主目录。主目录包含重要配置信息和Solr将存储索引的地方。

Solr的关键部分主目录所示:

/

solr.xml

conf/

solrconfig.xml

schema.xml

data/

 

你供应solrxml,solrconfigxml和模式。xml告诉Solr如何行为。默认情况下,Solr存储

索引里面的数据。

 

solrSolr核心xml指定的配置选项,并允许您配置多个核心。为关于solr的更多信息。xml看到Solr核心和solr.xml

 

solrconfigxml控制高级行为。例如,您可以指定一个替代位置的数据目录中。有关solrconfig的更多信息。xml,看到配置xml

 

模式。xml描述文件将要求Solr索引。内模式。作为一个xml,您定义一个文档字段的集合。你可以自己定义字段类型和字段。字段类型定义强大,包括Solr如何处理传入的信息字段值和查询值。更多的模式的信息。xml,看到文档、字段和模式设计。

 

Solr启动脚本参考

Solr包括一个脚本被称为“/ bin / Solr”允许您启动和停止Solr,创建和删除或集合核心,并检查碎片Solr和配置的状态。你可以找到你Solrbin目录中的脚本安装。bin / solr脚本让solr容易使用快速通过提供简单的命令和选项完成共同的目标。

 

在本节中,下面的标题对应可用命令。对于每一个命令,可用的选项与描述的例子。

 

更多的例子bin / solr在使用整个solr是可用的参考指南,但特别是在部分运行SolrSolrCloud开始。

 

Starting and Stopping

Start and Restart

 

start命令启动Solr。重启命令允许您重新启动Solr虽然已经运行或如果它已经被停止了。

启动和重启命令有几个选项允许您在SolrCloud模式下运行,使用一个例子配置设置,启动主机或端口,不是默认并指向当地动物园管理员。

 

./bin/solr start [options]

./bin/solr start -help

./bin/solr restart [options]

./bin/solr restart -help

当使用重启命令,你必须通过所有的参数你最初开始时通过Solr。在幕后,停止请求发起,所以Solr将再次停止之前启动。如果没有节点已经运行,重启将跳过步骤停止和继续启动Solr

 

可用参数

bin / solr脚本提供了很多选项允许您自定义服务器的常用方法,如改变监听端口。然而,大多数的违约是最充足的Solr安装,尤其是刚刚开始了。

 

参数

描述

例子

-a ""

与其他JVM启动Solr

参数,比如那些开始

- x。如果你是通过JVM参数

首先“d”,你可以省略- a

选择。

 

./bin/solr start -a

"-Xdebug -Xrunjdwp:transport=dt_socket,

server=y,suspend=n,address=1044"

-cloud

开始在SolrCloud Solr模式,将启动嵌入式饲养员

实例包括Solr

如果你已经运行一个动物园管理员不是,你想使用

嵌入式(单节点)动物园管理员,

你也应该通过- z参数。

更多细节,请参阅部分SolrClo

特拉华大学下面的模式。

 

./bin/solr start -c

-d

定义一个服务器目录,默认为爵士版本(,SOLR_HOME美元/服务器)。这是常见的覆盖这个选项。当运行Solr的多个实例同一主机,使用更为普遍同一台服务器为每个实例目录并使用一个独特的Solr主目录使用- s选项。

 

./bin/solr start -d newServerDir

-e

Start Solr with an example configuration.

These examples are provided to help you

get started faster with Solr generally, or

just try a specific feature.

The available options are:

cloud

techproducts

dih

schemaless

See the section Running with Example

Configurations below for more details on

the example configurations.

./bin/solr start -e schemaless

-f

启动Solr在前台,你不能

使用这个选项在运行的例子

e选项。

 

./bin/solr start -f

-h

启动Solr定义主机名。如果

不指定这个值,“localhost”

假定。

./bin/solr start -h search.mysolr.com

-m

Solr的价值定义为开始

最小值和最大值(- xmx)(xms)堆大小

JVM

./bin/solr start -m 1g

-noprompt

启动Solr和抑制任何提示

可以看到另一种选择。这

会接受所有的副作用吗

隐式地违约。

例如,当使用例子,一个交互式会话指导你通过几个选项SolrCloud集群。如果你想接受所有的缺省值,您可以简单地添加你的请求-noprompt选项。

 

./bin/solr start -e cloud -noprompt

-p

端口>开始Solr定义的端口。如果这不是

将使用指定,‘8983’

 

./bin/solr start -p 8655

-s

设置solr.solr。家系统属性;

Solr将创建核心目录下

目录中。这允许您运行多个

Solr实例在同一个主机上

重用相同的服务器目录设置

使用- d参数。如果设置,那么

应该包含一个指定的目录

solrxml文件。默认值是服务器

/ solr

运行时将忽略此参数

solr.solr.home例子(e)

依赖于运行示例。

./bin/solr start -s newHome

-V

启动Solr的详细消息启动脚本。

./bin/solr start -V

-z

启动Solr的动物园管理员定义的

连接字符串。只使用这个选项

使用- c选项,启动Solr

SolrCloud模式。如果没有这个选项

提供,Solr将启动嵌入式

动物园管理员实例并使用它

SolrCloud操作的实例。

./bin/solr start -c -z

server1:2181,server2:2181

 

强调如何默认设置工作花一点时间了解以下命令相当于:

 

./bin/solr start

./bin/solr start -h localhost -p 8983 -d server -s solr -m 512m

没有必要定义所有的选项在开始违约是否适合您的需求。

 

设置Java系统属性

 

bin / solr脚本将通过任何额外的参数,首先JVM - d,它允许您设置任意Java系统属性。例如,汽车soft-commit频率设置为3,你能做什么:

./bin/solr start -Dsolr.autoSoftCommit.maxTime=3000

 

SolrCloud Mode

 

The -c and -cloud 参数等价于

./bin/solr start -c

./bin/solr start -cloud

 

如果你指定一个动物园管理员连接字符串,比如- z 192.168.1.4:2181,然后Solr将连接到

动物园管理员并加入集群。如果你不指定- z选项时启动Solr在云计算模式下,然后Solr

启动嵌入式动物园管理员服务器监听Solr港口+ 1000,,如果Solr在端口8983上运行,那么嵌入的动物园管理员将监听端口9983

 

重要:如果你的动物园管理员连接字符串使用chroot,localhost:2181 / solr,然后你需要在启动前引导/ solr znode SolrCloud使用bin / solr脚本。为此,您需要使用zkc李。sh脚本附带Solr,:

 

server/scripts/cloud-scripts/zkcli.sh -zkhost localhost:2181/solr -cmd bootstrap-solrhome server/solr

 

当从SolrCloud模式,互动脚本会话将提示您选择一个configset使用。

 

SolrCloud启动Solr模式的更多信息,参见SolrCloud的部分开始。

Running with Example Configurations

./bin/solr start -e

 

配置的示例允许您快速掌握一个镜子配置你的希望完成与Solr。提供了下面的例子:

cloud: This example starts a 1-4 node SolrCloud cluster on a single machine. When chosen, an interactive

session will start to guide you through options to select the number of nodes for your example cluster, the

ports to use, and name of the collection to be created.

techproducts: This example starts Solr in standalone mode with a schema designed for the sample

documents included in the $SOLR_HOME/example/exampledocs directory. The configset used does not

have SolrCloud or schemaless modes enabled, so fields must be explicitly defined in schema.xmlin order

for documents including those fields to be added to the index. The configset used can be found in $SOLR_HO

ME/server/solr/configsets/sample_techproducts_configs.

dih: This example starts Solr in standalone mode with the DataImportHandler (DIH) enabled and several

example dataconfig.xml files pre-configured for different types of data supported with DIH (such as,

database contents, email, RSS feeds, etc.). For more information about DIH, see the section Uploading

Structured Data Store Data with the Data Import Handler.

schemaless: This example starts Solr in standalone mode using a managed schema, as described in the

section Managed Schema Definition in SolrConfig, and provides a very minimal pre-defined schema. Solr will

run in Schemaless Mode with this configuration, where Solr will create fields in the schema on the fly and will

guess field types used in incoming documents. The configset used can be found in $SOLR_HOME/server/s

olr/configsets/data_driven_schema_configs.

 

 

注意:run-in-foreground选项(- f)不使用- e选项自脚本需要执行额外的任务后启动Solr服务器。

 

Status

Solr的身份命令显示基本的json格式的信息节点发现在本地运行系统。status命令使用SOLR_PID_DIR环境变量来定位Solr进程ID文件运行Solr实例;SOLR_PID_DIR变量默认为bin目录。

 

./bin/solr status

 

输出将包含一个集群的每个节点的状态,在这个例子中:

Found 2 Solr nodes:

Solr process 39920 running on port 7574

{

"solr_home":"/Applications/Solr/solr-5.0.0/example/cloud/node2/solr/",

"version":"5.0.0 1658469 - anshumgupta - 2015-02-09 09:54:36",

"startTime":"2015-02-10T17:19:54.739Z",

"uptime":"1 days, 23 hours, 55 minutes, 48 seconds",

"memory":"77.2 MB (%15.7) of 490.7 MB",

"cloud":{

"ZooKeeper":"localhost:9865",

"liveNodes":"2",

"collections":"2"}}

Solr process 39827 running on port 8865

{

"solr_home":"/Applications/Solr/solr-5.0.0/example/cloud/node1/solr/",

"version":"5.0.0 1658469 - anshumgupta - 2015-02-09 09:54:36",

"startTime":"2015-02-10T17:19:49.057Z",

"uptime":"1 days, 23 hours, 55 minutes, 54 seconds",

"memory":"94.2 MB (%19.2) of 490.7 MB",

"cloud":{

"ZooKeeper":"localhost:9865",

"liveNodes":"2",

"collections":"2"}}

 

Stop

停止命令发送一个请求到运行Solr节点,它可以关闭优雅。的命令将等待5秒钟Solr停止优雅,然后将有力地杀死进程(kill - 9)

./bin/solr stop [options]

./bin/solr stop -help

 

可用参数

-p   停止Solr给定端口上运行。如果您正在运行多个实例,或者在SolrCloud模式下运行,你要么需要指定单独的港口吗请求或使用-选项。

例如:./bin/solrstop -p8983

 

-all 停止所有运行Solr实例有一个有效的PID 

例如:./bin/solr-stop -all

 

-k 阻止主要用于保护停止Solr无意中,默认是“solrrocks”

例如:./bin/solrstop -ksolrrocks

 

Healthcheck

healthcheck命令生成一个json格式的健康报告SolrCloud收集运行时模式。健康报告提供信息的状态每一副本集合中的所有碎片,包括提交文件的数量及其当前状态。

 

./bin/solr healthcheck [options]

./bin/solr healthcheck -help

可用参数

-c 收集运行healthcheck名称(必需)

例如:./bin/solrhealthcheck -cgettingstarted

 

-z 动物园管理员连接字符串,默认为localhost:9983。如果您正在运行Solr8983年之外的其他端口,您必须指定动物园管理员连接字符串。默认情况下,这将是Solr港口+ 1000

例如:./bin/solrhealthcheck -zlocalhost:2181

 

下面是一个示例healthcheck请求和响应使用非标准的动物园管理员连接字符串,2节点运行:

$ ./bin/solr healthcheck -c gettingstarted -z localhost:9865

{

"collection":"gettingstarted",

"status":"healthy",

"numDocs":0,

"numShards":2,

"shards":[

{

"shard":"shard1",

"status":"healthy",

"replicas":[

{

"name":"core_node1",

"url":"http://10.0.1.10:8865/solr/gettingstarted_shard1_replica2/",

"numDocs":0,

"status":"active",

"uptime":"2 days, 1 hours, 18 minutes, 48 seconds",

"memory":"25.6 MB (%5.2) of 490.7 MB",

"leader":true},

{

"name":"core_node4",

"url":"http://10.0.1.10:7574/solr/gettingstarted_shard1_replica1/",

"numDocs":0,

"status":"active",

"uptime":"2 days, 1 hours, 18 minutes, 42 seconds",

"memory":"95.3 MB (%19.4) of 490.7 MB"}]},

{

"shard":"shard2",

"status":"healthy",

"replicas":[

{

"name":"core_node2",

"url":"http://10.0.1.10:8865/solr/gettingstarted_shard2_replica2/",

"numDocs":0,

"status":"active",

"uptime":"2 days, 1 hours, 18 minutes, 48 seconds",

"memory":"25.8 MB (%5.3) of 490.7 MB"},

{

"name":"core_node3",

"url":"http://10.0.1.10:7574/solr/gettingstarted_shard2_replica1/",

"numDocs":0,

"status":"active",

"uptime":"2 days, 1 hours, 18 minutes, 42 seconds",

"memory":"95.4 MB (%19.4) of 490.7 MB",

"leader":true}]}]}

 

Collections and Cores

bin / solr脚本也可以帮助您创建新的集合(SolrCloud模式)或核心(在独立模式),或删除收藏。

Create

Solr的创建命令检测模式中运行(独立或SolrCloud),然后创建一个核心或根据模式集合。

./bin/solr create options

./bin/solr create -help

 

可用参数

-c 核心或集合的名称创建(必需)

例如:./bin/solrcreate -cmycollection

 

 

-d The configuration directory. This defaults to data_driven_schema_configs.

例如:./bin/solrcreate -dbasic_configs

 

-n 配置名称。这个默认为核心或相同的名称收集。

例如:./bin/solrcreate -nbasic

 

-p 港当地Solr实例将创建命令;默认情况下脚本试图检测端口通过寻找运行Solr实例。

例如:./bin/solrcreate -p8983

-s -shards 集合分割成碎片的数量,默认为1,只有适用当SolrSolrCloud模式下运行。

例如:./bin/solrcreate -s 2

 

-rf -replicationFactor 集合中的每个文档的副本数量。默认是1(没有复制)

例如:./bin/solr-rf 2

 

配置目录和SolrCloud

SolrCloud之前创建一个集合,使用的配置目录集合必须上传动物园管理员。创建命令支持多个用例集合和配置目录是如何工作的。主要你需要做出决定的是在动物园管理员配置目录是否应该共享多个集合。让我们一起通过几个例子来说明配置目录在SolrCloud工作。

 

首先,如果你不提供- d- n选项,然后默认配置(SOLR_HOME美元/服务器/ solr /进行gsets / data_driven_schema_configs / conf)上传到动物园管理员使用相同的名称收集。例如,下面的命令将导致data_driven_schema_configs配置在动物园管理员/配置/联系人:上传。/bin/solr创建- c的联系人。如果你创建另一个集合,通过。/bin/solr创建c contacts2,然后另一个data_driven_schema_co的副本将nfigs目录上传到管理员/配置/ contacts2下。你做的任何更改配置的接触不会影响contacts2集合集合。简而言之,默认的行为创建一个独特的副本配置为每个集合创建目录。

 

你可以在动物园管理员覆盖配置目录的名字通过使用- n选项。例如,该命令。/bin/solr创建日志- c - d basic_configs - n基本将上传服务器/ solr / configsets / basic_configs / conf目录管理员/配置/基本。

 

请注意,我们使用- d选项来指定一个不同于默认的配置。Solr提供了一些内置的配置服务器/ solr / configsets之下。然而你也可以提供自己的路径使用- d选项配置目录。例如,命令。/bin/solr创建c mycoll d/ tmp / myconfigs将上传/ tmp / myconfigs/配置/ mycoll下面饲养员。再次重申,配置目录命名集合,除非你使用- n选项覆盖它。

 

其他集合可以共享相同的配置通过指定的名称使用- n共享配置选择。例如,下面的命令将创建一个新的集合,股票基本配置创建以前:/bin/solr创建基本- c logs2 - n

 

数据驱动模式和共享配置

data_driven_schema_configs模式可以变异数据的索引。因此,我们建议您不要之间共享数据驱动的配置集合,除非你确信所有的收藏都应该继承所做的更改在索引数据的集合。

 

 

Delete

Solr的删除命令检测模式中运行(独立或SolrCloud),然后删除指定的核心(独立)或收集(SolrCloud)

./bin/solr delete [options]

./bin/solr delete -help

 

如果在SolrCloud模式下运行,“删除命令检查是否配置目录使用的集合删除正在使用的其他集合。如果不是,那么配置目录也删除动物园管理员。例如,如果您创建了一个集合通过。/bin/solr创建- c的联系人,然后删除命令。/bin/solr删除- c联系人将检查/配置/联系人configuration目录是被其他集合。如果不是,那么从/配置/联系人目录动物园管理员。

 

可用参数

-c 名称的核心/删除(必需)集合。

例如:./bin/solrdelete -cmycoll

 

-deleteConfig 从动物园管理员删除配置目录。默认是正确的。如果配置目录是被另一个集合,然后它会不会被删除,即使你通过-deleteConfig真的。

例如:./bin/solrDelete-deleteConfigfalse

 

-p 当地一个Solr实例的端口发送命令来删除。通过默认的脚本试图通过寻找运行Solr检测端口实例。

例如:./bin/solrdelete -p 8983

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Solr升级

如果您已经在使用Solr 4.10,Solr 5.0应该不存在任何重大问题。然而,您应该检查的变化。txt文件中发现Solr包可能影响你现有的变化和更新实现。

 

4.10.x升级

Solr不再是分布式作为战争”(Web应用程序存档)适合在任何Servlet部署容器。这种变化的动机的细节,以及升级说明Solr 4x集群Solr 5.0可以从Solr中发现的重大变化4 Solr 5部分。

Solr不再支持阅读LuceneSolr 3。早些时候x和索引。看到Solr 4中的重大变化Solr 5节本指南的细节如何转换旧索引到当前格式。老式”solr

Solr 4.3中的xml格式过时不再支持,必须定义和核心核心。属性文件。一些指令移动到新的solrxml格式是包含在本指南。的文件属性在solrconfig infoStreamxml是不再支持。控制这通过你日志配置(org.apache.solr.update.LoggingInfoStream)

UniqFieldsUpdateProcessorFactory不再支持< lst命名= "字段" > init参数

风格在Solr 4.5中被弃用。如果你仍然使用这种语法,使用< arr更新您的配置

name = "字段名" >。更多细节请参见solr - 4249

以下遗留数字和日期字段类型,弃用在Solr 4.8,不再支持:BCDIntF

领域,BCDLongFieldBCDStrField IntField LongField,实域,DoubleField SortableI

ntFieldSortableLongField SortableFloatFieldSortableDoubleField和一。

这些类型的模式转换为相应的Trie-based字段类型,然后重新检索。看到SOLR

-5936的更多信息。

IndexSchema getAnalyzer()FieldType弃用Solr 4.9中被移除。

使用getIndexAnalyzer()。有关更多信息,请参见solr - 6022

拼写检查响应格式已经改变,影响客户xmljson。特别是,“正确

校长排序部分已经移到外面建议小节,

现在是直接在拼写检查。有关更多信息,请参见solr - 3029

OVERSEERSTATUS API返回新的密钥名称“createcollec操作,创造

”,“删除”,“removecollection”“deleteshard”“removeshard”

如果你一直使用json / docs /更新/索引文件,solr - 6617介绍落后

不兼容的更改。创建的键名称是钥匙的完全限定路径。如果你需要旧的功能,

请添加一个额外的参数f = / * *例如:/更新/ json / docs ? f = / * *

臭虫固定在几个ValueSource函数可能会导致不同的行为在一些的情况下

文件字段没有值用其他价值来源。用户想要保留

以前的行为可能需要包装领域在“def()”功能。例子:改变“fl =总和(水平,f

ieldB)”外语=总和(def(水平,0.0),def(fieldB,0.0))”。更多细节请参见lucene - 5961

AdminHandlers弃用,/ admin / *是隐式定义,/,/也复制处理程序

隐式注册(solr - 6792)

solrconfig“termIndexInterval”选项。xml是一个操作在默认Solr以来的编解码器

4.0,5.0已经完全移除。如果你得到一个非法参数

termIndexInterval”错误升级时,您可以安全地删除从您的配置这个选项。如果你

有强烈的需要配置,您必须显式地配置您的模式与一个自定义编解码器。看到的年代

olr - 6560和更多细节。

“checkIntegrityAtMerge”

SimplePostTool(post.jar)不再默认为文物,包括核心/集合名称或

强制更新URL。现有的电话没有一个明确的更新URL需要现在核心/集合

名字通过“dc = < /核心集合名称>”:java dc = < collection_name > jar

jar *xml与集合名称的电话()。更多细节请参见solr - 6852

相对路径在solr中指定。xml为核心发现现在coreRootDirectory参数

相对于SOLR_HOME解决,而不是慢性消耗病的。看到solr - 6718

SolrServer已经废弃的和相关的类。使用SolrJ应该使用应用程序

等效SolrClient类。

空间字段来自Solr 4(例如SpatialRecursivePrefixTreeFieldType,BBoxField)

弃用单位属性,现在“distanceUnits”所取代。如果你改变一个单位以外的

”(或者如果你不指定,默认公里如果geo = true),然后一定要更新

axDistErr的那些单位。如果你保持单位=度应该是向后兼容的

你会得到一个弃用警告在启动时。看到solr - 6797

solrconfig < nrtMode >配置。xml已经停止,应该远离

lrconfig.xmlSolr默认使用NRT搜索者无论配置和价值的一个警告

是如果solrconfig登录启动。指定xml < nrtMode >

有一个旧空间语法来指定一个圆使用圆(x,y d =…)这应该被取代

仅仅使用{ !geofilt }(如果可以)或缓冲区(x(y),d)。同样一个矩形语法组成

的风骚女子如矿坑的maxX maxY,现在应该换成信封(风骚女子,maxX maxY,如矿坑的)

由于改变底层commons-codec,BeiderMorseFilterFactory将用户

升级后需要重建索引。更多细节请参见lucene - 6058

CachedSqlEntityProcessor已被删除,使用SqlEntityProcessor cacheImpl对位

计。

HttpDataSource已被删除,使用以及URLDataSource代替。

弃用LegacyHTMLStripCharFilter已经被移除。

CoreAdminRequest.persist()调用被移除。所有通过CoreAdmin更改都是持久的。

许多废弃的方法从各种SolrJ类已被移除。请查阅Solr 4.10

javadocs SolrJ包的相关信息支持的新方法。

 

Solr的从旧版本升级

用户从旧版本升级强烈建议咨询的变化。txt对所有更改的细节因为他们是升级版本,总结可以发现显著变化的重大变化从Solr 4 Solr 5

 

 

理解分析、分词器和过滤器

以下部分描述如何Solr分解和与文本数据。有三个主要的概念理解:分析、分词器和过滤器。

 

场分析程序都使用在摄入,索引文件时,在查询时间。一个分析器检查的文本字段和生成一个令牌流。分析可能是一个类或他们可能由一系列的记号赋予器和过滤器类。

 

分词器字段数据分解成词汇单位,或令牌。

 

过滤器检查令牌,并且让他们流、转换或丢弃,或创建新的。分词器和过滤器可以组合成管道,或链,一个是输入的输出。这样一个序列分词器和过滤器被称为一个分析器和分析仪是用于匹配的结果输出查询结果或建立索引。

 

使用分析仪、分词器和过滤器

虽然分析过程用于索引和查询,同样的分析过程不需要使用两个操作。对于索引,您通常想要简化,或正常化,单词。例如,设置所有的信件小写,消除标点符号和口音,字映射到它们的茎,等等。这样做可以增加回忆,因为,例如,“内存”,“内存将所有匹配查询内存。增加查询时

精度,一个过滤器可以用来缩小匹配,例如,忽视全市值缩略词如果你公绵羊感兴趣,但不是随机存取存储器。

 

分析过程定义的标记输出值,或术语中,该字段和构建一个使用指数条款添加新文档时,或者你是确定哪些文件包含的条款查询。

 

的更多信息

这些部分将向您展示如何配置领域分析,也作为参考的细节配置每个可用的记号赋予器和过滤器类。它也作为一个导游,这样您就可以配置您的自己的分析类如果你有特殊需要,不能会见了包括过滤器或分词器。

 

 

Collections API

 

API Entry Points

The base URL for all API calls below is http://:/solr.

/admin/collections?action=CREATE: create a collection

/admin/collections?action=RELOAD: reload a collection

/admin/collections?action=SPLITSHARD: split a shard into two new shards

/admin/collections?action=CREATESHARD: create a new shard

/admin/collections?action=DELETESHARD: delete an inactive shard

/admin/collections?action=CREATEALIAS: create or modify an alias for a collection

/admin/collections?action=DELETEALIAS: delete an alias for a collection

/admin/collections?action=DELETE: delete a collection

/admin/collections?action=DELETEREPLICA: delete a replica of a shard

/admin/collections?action=ADDREPLICA: add a replica of a shard

/admin/collections?action=CLUSTERPROP: Add/edit/delete a cluster-wide property

/admin/collections?action=MIGRATE: Migrate documents to another collection

/admin/collections?action=ADDROLE: Add a specific role to a node in the cluster

/admin/collections?action=REMOVEROLE: Remove an assigned role

/admin/collections?action=OVERSEERSTATUS: Get status and statistics of the overseer

/admin/collections?action=CLUSTERSTATUS: Get cluster status

/admin/collections?action=REQUESTSTATUS: Get the status of a previous asynchronous request

/admin/collections?action=LIST: List all collections

/admin/collections?action=ADDREPLICAPROP: Add an arbitrary property to a replica specified by

 

例子:

http://localhost:8983/solr/admin/collections?action=CREATE&name=newCollection&numShards=2&replicationFactor=1

 

 

 

http://localhost:8983/solr/admin/collections?action=ADDREPLICA&name=test2&replicationFactor=2

 

 

 

 

 

http://169.254.208.70:8983/solr/admin/collections?action=CREATE&name=a

 

 

 

 

 

创建集合

http://169.254.208.70:8983/solr/admin/collections?action=CREATE&name=a&collection.configName=test&numShards=2&maxShardsPerNode=2&replicationFactor=1

 

说明:name指的是创建的集合名词

configName指的是集合使用的配置文件,配置文件必须在zookeeper中存在,否则创建失败。

numShards要和maxShardsPerNode一致,否则创建失败。

 

 

重新加载集合

http://169.254.208.70:8983/solr/admin/collections?action=RELOAD&name=a

 

 

分隔某个shard为俩个新的shard

http://169.254.208.70:8983/solr/admin/collections?action=SPLITSHARD&collection=a&shard=shard1

 

Collection代表要分隔的集合

Shard=要分隔的shard名称

 

 

增加副本

http://169.254.208.70:8983/solr/admin/collections?action=ADDREPLICA&collection=test&shard=shard1

Collection代表集合名字

Shard表示给哪个shard增加副本,例子中是给 shard1增加副本。

其他说明:增加副本必须集群机器必当前使用的机器多,否则操作失败。

 

接近实时搜索

实时(NRT)附近搜索意味着文档可供搜索后几乎立即索引:添加和更新实时文档在附近。虽然Solr并不阻止更新正在进行提交。也不等待背景合并完成之前打开一个新的搜索的索引

并返回。

 

NRT您可以修改提交命令是一个柔软的提交,避免部分标准提交可能代价高昂。你仍然想做标准致力于确保文档是在稳定的存储器,但软承诺让你看到一个非常接近的实时视图索引同时。然而,特别注意缓存和hit设置可以对NRT性能产生重大影响。

 

Commits and Optimizing

提交操作使得索引变化可见新的搜索请求。hard提交使用事务日志最新的文档更改的id,并调用fsync索引文件,以确保他们刷新到稳定存储,没有数据丢失会造成停电。

 

软提交快得多,因为它只会让指数变化可见,fsync索引文件或写新指数描述符。如果JVM崩溃或失去动力,最后后发生的变更,很难提交将丢失。搜索集合,NRT需求(希望可以很快看到指数变化搜索)通常需要软提交但努力提交的频率更低。一个softCommit可能便宜的时间,但不是免费的,因为它可以缓慢的吞吐量。

 

优化就像硬commit除了它迫使所有的索引段合并成一个段第一。根据使用,应该很少执行这个操作(如、夜间),如果有的话,因为它涉及到阅读和重写整个索引。段通常随时间(确定合并

通过合并政策),这些合并和优化只是部队立即发生。

 

软提交提供了俩个参数:maxDocs and maxTime.

maxDocs    整数。定义文档的数量在把他们推到索引队列。它工作在如果结合update_handler_autosoftcommit_max_time参数达到极限,文档将被推到索引。

maxTime     等待的毫秒数前推到索引文件。它的工作原理相结合update_handler_autosoftcommit_max_docs参数,如果限制,将被推到索引的文档。

 

明智而审慎地使用maxDocsmaxTime微调您的提交策略。

AutoCommits

参数maxDocsmaxTime autocommit也使用。然而,在许多策略使用的有用硬autocommitautosoftcommit实现更灵活的提交。

 

常见的配置是努力做一个自动提交每1 - 10分钟和autosoftcommit每一秒。在这个配置中,新文档将显示在第二个补充说,要是没,软提交丢失除非硬提交已经完成。

 

例如:

1000

 

最好使用maxTime而不是maxDocs修改autoSoftCommit,特别是当索引一个大通过提交操作的文档数。这也是更好地关掉autoSoftCommit批量索引。

可选属性为提交和优化

waitSearcher  阻塞,直到一个新的搜索器打开并注册为主要查询搜索器,使变化明显。默认是正确的。

softCommit   执行一个柔软的提交。这将刷新视图索引的更快,但是没有保证稳定存储的文档。默认是假的。

expungeDeletes   只提交有效。这个参数清洗删除的数据段。默认的是假的。

maxSegments =N   有效优化。优化了最多这段的数量。缺省值是1

 

例如:

 

通过提交和commitWithin参数作为URL的一部分

更新处理程序也可以commit-related参数更新URL的一部分。这个示例添加一个小的测试文档和显式提交之后立即发生原因:

http://localhost:8983/solr/my_collection/update?stream.body=

testdoc&commit=true

 

或者,您可能想使用:

http://localhost:8983/solr/my_collection/update?stream.body=

 

这个例子使索引优化最多10,但不会等待,直到它完成(waitFlush = false):

curl

'http://localhost:8983/solr/my_collection/update?optimize=true&maxSegments=10&waitFlush=false'

 

 

这个示例添加一个小的测试文档与commitWithin指令,Solr确保文档提交不晚于10秒后(这个方法通常是优先于显式提交):

curl http://localhost:8983/solr/my_collection/update?commitWithin=10000

-H "Content-Type: text/xml" --data-binary'testdoc'

 

改变默认commitWithin行为

commitWithin设置允许文档提交不得不在一个定义的时间发生。这是使用最经常与接近实时搜索,因此默认执行软提交。这并不是,然而,新文档复制到从服务器在主/从环境中。如果这是你的要求实现,你可以强制提交通过添加一个参数,在这个例子中:

false

在这个配置中,当你叫commitWithin作为你的更新信息的一部分,它将自动执行每次都努力提交。

 

实时获取

索引更新可见(搜索),某种承诺必须重新搜索到一个新的时间点视图的索引。实时获取特性允许检索(唯一键)的任何文件的最新版本没有相关的成本重新搜索。这主要是有用的在使用Solr NoSQL数据存储而不只是一个搜索索引。

 

实时获取依赖于更新日志功能,这是默认启用,solrconfig可以配置。

${solr.ulog.dir:}

 

实时可以使用/执行Get请求处理程序在Solr存在隐式——相当于以下配置:

true

json

true

 

例如,如果你开始使用bin / Solr Solr - e techproducts示例命令,然后您可以索引一个新文档(与承诺)如下:

curl 'http://localhost:8983/solr/techproducts/update/json?commitWithin=10000000'

-H 'Content-type:application/json' -d '[{"id":"mydoc","name":"realtime-get test!"}]'

 

如果你做一个正常的搜索,本文档不应该发现:

http://localhost:8983/solr/techproducts/select?q=id:mydoc

...

"response":

{"numFound":0,"start":0,"docs":[]}

 

但是如果你使用实时处理程序暴露在/get,你仍然可以检索,文档:

http://localhost:8983/solr/techproducts/get?id=mydoc

...

{"doc":{"id":"mydoc","name":"realtime-get test!", "_version_":1487137811571146752}}

您还可以指定多个文件通过id参数和ids的逗号分隔列表,或通过使用多个id参数。如果你指定多个id,或者使用id参数,模拟正常的响应查询响应,使现有客户更容易解析。

 

http://localhost:8983/solr/techproducts/get?ids=mydoc,IW-02

http://localhost:8983/solr/techproducts/get?id=mydoc&id=IW-02

...

{"response":

{"numFound":2,"start":0,"docs":

[ { "id":"mydoc",

"name":"realtime-get test!",

"_version_":1487137811571146752},

{

"id":"IW-02",

"name":"iPod & iPod Mini USB 2.0 Cable",

...

]

}

}

 

 

 

 

 

Update

Commits

数据发送到Solr不是搜索,直到它一直致力于指数。这样做的原因是,在某些情况下提交可以是缓慢的,他们应该独立于其他可能的完成提交请求,避免覆盖数据。所以,最好的数据提交时提供控制。有几个选项可以控制的时间提交。

commit and softCommit

Solr,承诺是一个动作,Solr“提交这些变化Lucne索引文件。默认情况下提交行为导致“hard提交所有Lucene索引文件到稳定存储(磁盘)。当客户端包括提交= true参数更新请求,这将确保所有索引段的影响&补充道删除上一个更新就被写到磁盘索引更新完成。

 

如果指定一个额外的国旗softCommit = true,然后Solr执行软承诺”,这意味着Solr将更改提交到Lucene数据结构迅速但不保证Lucene索引文件编写稳定的存储器。这是附近的一个实现实时存储功能,提高文档的可见性,因为你不必等待背景合并和存储(动物园管理员,如果使用SolrCloud)之前完成移动到别的东西。一个完整的承诺意味着,如果服务器崩溃,Solr会清楚地了解您的数据存储;软提交意味着数据存储,但尚未存储位置信息。代价是软承诺给你更快的可见性,因为它不是等待背景合并完成。

 

复制的术语

下表定义了关键术语与Solr复制。 505

名词

定义

Index

Lucene索引文件的目录中。这些文件的搜索和可回收的数据Solr核心。

Distribution

索引从主服务器的复制所有的奴隶。分配过程利用Lucene的索引文件结构。

Inserts and

Deletes

插入和删除操作发生在索引、目录保持不变。文档是总是插入到新创建的文件。文件删除不了文件。他们标记文件,才可删除的,从文件中删除索引

优化。

Master and

Slave

Solr复制主最初是一个节点,接收所有更新和保持一切有条理。Solr直接复制从节点接收没有更新,而不是所有更改(如插入、更新、删除等)是由对单一主节点。更改的主分布的所有从节点服务所有查询请求从客户端。

Update

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(solr,lucene,apache)