zoukankan      html  css  js  c++  java
  • Solr官方文档翻译-About & Getting Started

    关于(About)

       官方文档介绍了所有的Apache Solr实现的重要特性和功能。它是免费的,可以到http://lucene.apache.org/solr/下载。

       为了更加的深入和广泛,设计成一个较高水平的文档,而不是一个菜谱。文档定位到比较广泛的需求,帮助新手和经验丰富的开发人员扩展他们的应用,帮助他们定位和解决问题。在应用开发生命周期中,关于任何一点关于Solr的内容都可以使用这个文档,会得到最权威的信息。

      这里默认你熟悉搜索的概念并且能够读懂XML,你不需要是个Java程序员,但是有一定的Java基础对于使用Solr是很有帮助的。

      主机和端口样例:

      Solr的运行时的默认端口是8983,在例子中网址和截图可能会显示不同的端口,因为Solr的使用的端口号是可配置的。如果你还没有定制你的Solr的安装,请确保你按照示例时使用端口8983,或配置自己的安装使用示例中显示的端口号。有关配置端口号的信息,请参阅有关章节。同样,URL示例使用'localhost';如果你是从远程位置访问Solr的托管服务器,可以设置相应的域名和IP地址。
      路径:

      路径信息在solr.home之处,在solr安装之后,data和conf目录将被创建。

    开始Solr(Getting Started)

       Solr可以让程序员更加简单的使用先进的特性(例如层面搜索)开发出准确、高效的搜索应用。Solr是基于另一个开源搜索技术Lucene(一个Java库,提供索引和搜索技术,高亮显示、拼写检查、语义分析等功能)。Solr和Lucene都由Apache软件基金会管理。

      Lucene搜索库目前在top15的开源项目中位列前茅,Apache项目top5开源项目之一,超过4000家公司使用。 Lucene/ Solr的下载量已经超过过去三年,增长了近十倍。 Solr搜索服务器提供了构建于Lucene搜索库上层的搜索平台,是增长最快的Lucene子项目。 Apache Lucene/ Solr提供了一个成熟的搜索解决方案。

      本节将帮助你快速安装、启动Solr并介绍Solr的基本结构和功能。

      包括以下主题:

      安装Solr:Solr的安装过程的演练。
      运行Solr:介绍运行Solr。包括启动服务器,添加文件,运行查询的信息。
      快速浏览:站在较高的角度介绍Solr的工作原理。
      更近一步:介绍Solr的主目录和配置选项。
      Solr的启动脚本参考:bin/solr script。

    安装Solr(Installing Solr)

       本节将介绍如何安装Solr的。你可以在任何系统中安装的Solr,目前包括Linux,OS X和Microsoft Windows。需要Java运行时环境(JRE)是可用的,详见下文。在本节说明适用于任何平台,Windows少数例外。

       获取Java?

       你需要1.7或更高版本Java运行时环境(JRE),在命令行输入以下命令检查Java版本:

    $ java -version
    java version "1.8.0_60"
    Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
    Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)

      安装Solr:

       准备好平台环境后,可以到http://lucene.apache.org/solr/.下载Solr相应安装包。以Linux为例,简单起见在home目录下解压安装包:

    $ cd ~/
    $ tar zxf solr-5.0.0.tgz

      解压好安装包之后你就可以根据Solr的运行说明来启动运行Solr了。

    运行Solr(Running Solr)

        本节将介绍如何用一个例子模式运行Solr,如何添加文件,以及如何运行查询。

        启动服务:

       如果安装后没有启动,可以通过bin/solr目录来启动

    $ bin/solr start

       如果在Windows平台,可以这样启动:

    binsolr.cmd start

       这样就可以在后台启动Solr,并监听8983端口。

      当在后台启动Solr后,脚本就会检查启动的正确性并返回将提示信心返回到控制台。

      /bin/solr 和 binsolr.cmd脚本允许自定义启动solr。来演示使用bin/solr脚本几个例子(如果是Windows平台可以使用另外一个命令)。

      Solr脚本选项:

       bin/solr 脚本有几个使用选项:

      帮助选项:

      查看怎么使用bin/solr脚本

    $ bin/solr -help

      有关启动命令的具体说明:

    $ bin/solr start -help

      在前台启动Solr:

    $ bin/solr start -f

    #Windows:
    binsolr.cmd start -f

           在不同端口启动Solr:

    $ bin/solr start -p 8984

        停止Solr:

    $ bin/solr stop -p 8983

      也可以使用-all参数来关闭所有运行中的Solr实例。

      通过一个具体的实例配置来启动Solr:

      Solr也提供了一些有用的示例来帮助你学习Solr的关键特性,你可以使用-e参数来启动示例,例如启动"techproducts"示例,你需要这么做:

    $ bin/solr -e techproducts

       现在,你可以使用的例子有:techproducts, dih, schemaless, and cloud. 关于每个例子的细节请查看:Running with Example Configurations。

      检查Solr是否在运行:

      如果你不确定Solr在本地正在运行的话,可以使用查看状态的命令:

    $ bin/solr status

      这个命令会查找你计算机上的Solr实例,并收集它们的基本信息,例如版本和内存使用情况。如果想进一步确定,可以使用Web浏览器的管理控制台。

    http://localhost:8983/solr/

    Solr管理接口

      如果Solr没有正在运行,浏览器会提示连接不上服务器,可以检查一下端口号然后重试。

      创建一个Core:

      如果你没有使用示例配置,为了能够建立索引和查询,你必须创建一个Core。你可以这样做:

    $ bin/solr create -c <name>

      这会使用data-driven schema创建一个core,会尝试根据添加的文档来确定类型建立索引。

      查看所有创建新core的选项:

    $ bin/solr create -help

      添加文档:

      Solr内置查找匹配查询的文档,Solr的schema提供了内容的结构(更多关于schema的内容在后面),但是没有文档就没有可以查找的。在Solr起作用之前需要输入。

       在尝试为内容添加索引之前,你可能会添加一些简单的样本文档。在example/目录的子目录下有不同的类型。

      在bin/目录下有一个发送脚本,是一个命令行工具,可以索引不同的文档。现在不需要关心太多细节。索引部分的所有细节都在The Indexing and Basic Data Operations部分。

      要查看有关bin/post的有关信息,使用-help选项。Windows用户可以参考bin/post工具的Windows部分。

      bin/post可以发送各种数据类型到Solr,包括原生的XML和JSON格式、CSV文件,丰富的文档目录树,甚至是抓取的简单网页。

      继续,根据示例XML文件添加所有文档:

    $ bin/post -c gettingstarted example/exampledocs/*.xml
    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,log
    POSTing file gb18030-example.xml (application/xml) to [base]
    POSTing file hd.xml (application/xml) to [base]
    POSTing file ipod_other.xml (application/xml) to [base]
    POSTing file ipod_video.xml (application/xml) to [base]
    POSTing file manufacturers.xml (application/xml) to [base]
    POSTing file mem.xml (application/xml) to [base]
    POSTing file money.xml (application/xml) to [base]
    POSTing file monitor.xml (application/xml) to [base]
    POSTing file monitor2.xml (application/xml) to [base]
    POSTing file mp500.xml (application/xml) to [base]
    POSTing file sd500.xml (application/xml) to [base]
    POSTing file solr.xml (application/xml) to [base]
    POSTing file utf8-example.xml (application/xml) to [base]
    POSTing file vidcard.xml (application/xml) to [base]
    14 files indexed.
    COMMITting Solr index changes to http://localhost:8983/solr/gettingstarted/update...
    Time spent: 0:00:00.153

      Solr已经为这些文档建立索引并包含在这些文件中。

      查询:

      现在,你有索引的文档可以执行查询。最简单的方法就是构建一个包含查询参数的URL。构建任何其他的HTTP URL是完全一样的。

      例如下面在所有文档中查询video:

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

      注意URL的组织方式,包含主机名(localhost),服务器监听的端口号(8983),应用程序名称(SOLR),进行查询(选择)的请求处理程序,查询本身(Q=video)。

      结果包含在一个XML文档里,你可以点击上面的连接。文档包含两部分,第一部分是响应头,包含相应本身的信息。相应的主题部分包含一个或多个文档标签。每一个都包含匹配查询的文档字段。你可以使用标准的XML文档转换技术生成合适的文档展示给用户。另外,Solr还可以返回JSON,PHP,Ruby、甚至是用户自定义的格式。

      下面的屏幕截图显示了查询的结果(其实是下面的例子)。顶层响应包含一个名为响应头和一个结果名为响应列表。结果里面,你可以看到三个搜索结果。

      你一旦掌握了查询的基本思想,很容易探索并用好查询语法。下面这个和之前一样,不过在每个返回文档里只包含ID、name、price。如果你不指定具体的字段,所有的都会返回。

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

      下面是搜索name字段为black的另一个例子,如果你不指定字段,会返回在schema中定义的默认字段。

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

      可以规定字段的范围,下面查询price在$0 ~ $400之间的文档:

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

      Faceted browsing是Solr的关键特性之一,它允许用户缩小对你的应用有意义的查询结果,例如一个购物网站可以提供facet来缩小制造商或者价格的搜索结果。Faceting的搜索结果是在返回信息的第三部分,为了感受一下Facet的强大,下面看一个查询,添加了acet=true and facet.field=cat

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

      除了Solr的响应头和查询结果,一个facet_counts元素也被返回了。下面是一个省略了响应头和查询结果的响应,还可以清楚的看到facet的信息。

    <response>
    <lst name="responseHeader">
    ...
    </lst>
    <result name="response" numFound="9" start="0">
      <doc>
        <str name="id">SOLR1000</str>
        <str name="name">Solr, the Enterprise Search Server</str>
        <float name="price">0.0</float></doc>
    ...
    </result>
    <lst name="facet_counts">
      <lst name="facet_queries"/>
      <lst name="facet_fields">
        <lst name="cat">
          <int name="electronics">6</int>
          <int name="memory">3</int>
          <int name="search">2</int>
          <int name="software">2</int>
          <int name="camera">1</int>
          <int name="copier">1</int>
          <int name="multifunction printer">1</int>
          <int name="music">1</int>
          <int name="printer">1</int>
          <int name="scanner">1</int>
          <int name="connector">0</int>
          <int name="currency">0</int>
          <int name="graphics card">0</int>
          <int name="hard drive">0</int>
          <int name="monitor">0</int>
        </lst>
      </lst>
      <lst name="facet_dates"/>
      <lst name="facet_ranges"/>
    </lst>
    </response>

      facet信息展示了每一个cat字段值的数量,你可以容易的提供给用户一个快捷的缩小查询范围的方式。你可以通过向Solr查询添加一个或多个过滤器来过滤信息。下面这个请求进一步限制了文档中软件类别。

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

    快速浏览(A Quick Overview)

       对Solr有过一些了解之后,你可以学习Solr可以做的所有酷炫的事情。下面这张图展示了Solr是如何被集成在应用程序里的。

     

      在上述情况下,Solr在其他服务应用程序旁边运行。例如,一个在线商店应用程序会提供一个用户界面、一个购物车、和用户最终购买的方法。而库存管理应用程序将允许店员编辑产品信息。该产品元数据应保存在某种数据库和Solr中。Solr可以很容易的添加商店网上搜索功能,包括以下步骤:

      1. 定义一个schema,该schema告诉Solr文档的哪些内容会被索引。在网上商店示例中,schema中会定义name,description,price,manufacturer等字段。Solr的schema很强大并且很灵活,允许你为应用程序定制Solr的行为。具体细节详见:Documents, Fields, and Schema Design。

      2. 在你的应用服务器上部署Solr。

      3. 向Solr提交用户将要查询的文档。

      4. 在你的应用程序中拓展搜索功能。

      由于Solr基于开放标准,它具有高度的可扩展性。Solr的查询风格是RESTful的,这意味着在本质上,Solr的查询是简单的HTTP请求的URL和结构化文档响应:主要是XML,也可以是JSON、CSV或者其他的格式。这意味着各种客户端都能够使用Solr,从其他的Web应用、丰富的客户端应用以及移动设备。能够使用HTTP的任何平台都可以使用Solr。关于客户端API的具体细节详见:Client APIs。

      Solr是基于Apache Lucene的一个高性能、全功能的搜索引擎。Solr对最简单的关键字查询和复杂的多字段、层面搜索都提供支持。关于查询的信息详见:Searching。

      如果中还不够,Solr还可以处理大批量应用。

      一种比较常见的情况是你有相当多的数据或者大量的查询。单个服务器不能够承担巨大的工作量。在这种情况下,你可以通过Solr可以在很多服务器上更好的拆分数据和请求来提高应用程序的性能。可以根据具体的需求可以有多个选项可以进行混合和匹配。

      例如,“分片”是一种缩放技术,为了提高可搜索文档的规模,超越单台服务器的物理瓶颈,一个collection被拆分成多个称作“Shards”的逻辑分片。传入的查询被分配给Collection的每个分片,之后合并每个分片的查询结果并返回。另一种技术是增加Collection的“副本因子”,这允许你添加额外的Collection副本通过把请求分发到多台机器处理高并发的请求负载。分片和副本并不是相互排斥的,而是共同成就了Solr这个非常强大的可扩展的平台。

      最重要的是,这种大批量应用的说法并不只是假设:一些著名的网站都在使用Solr,例如,Macy's, Ebay和Zappo's。

      更多信息请移步:https://wiki.apache.org/solr/PublicServers.

    更近一步(A Step Closer)

      你已经对Solr的schema有所了解,这节将会介绍Solr的home目录以及其他配置选项。

      当Solr运行在一个应用服务器上时,需要访问home目录。home目录包括了重要的配置信息和索引的存储位置。在单机模式下运行和在分布式模式下运行的home目录看起来有些不同。

      下面这些例子展示了Solr home目录的关键部分:

      单机模式:

    <solr-home-directory>/
       solr.xml
       core_name1/
          core.properties
          conf/
             solrconfig.xml
             schema.xml
          data/
       core_name2/
          core.properties
          conf/
             solrconfig.xml
             schema.xml
          data/

      分布式模式:

    <solr-home-directory>/
       solr.xml
       core_name1/
          core.properties
          data/
       core_name2/
          core.properties
          data/

      你可能会看到其他文件,但是需要了解的有一下几个:

      1. solr.xml 指定了你的Solr服务器实例配置选项。有关solr.xml的更多信息,请参阅Solr Cores and solr.xml。

      2. Per Solr Core

        1)core.properties 为每个核心定义了具体的属性,例如它的名字、属于哪个Collection、schema的位置和其他参数。关于core.properties的更多信息请参考:Defining core.properties。

        2)solrconfig.xml中控制高层次的行为。例如,你可以指定data目录的备用位置。有关solrconfig.xml中的详细信息,请参考Configuring solrconfig.xml。

        3)schema.xml(或者managed-schema)描述了将会建立索引的文档。在schema.xml中,你可以定义文档为Collection的一个fields。你来定义字段类型和fields本身。字段类型的定义功能强大,包括有关Solr如何处理传入字段值和查询值的信息。有关schema.xml的更多信息,请参考Documents,Fields,and SchemaDesign。如果你正在使用Solr的Schema API来管理你的fields,你会看到managed-schema 而不是schema.xml(请看Managed Schema Definition in SolrConfig)。

        4)data/ 这个目录包含底层的索引文件。

      注意,SolrCloud示例不包括每个Solr Core的conf目录(因此没有solrconfig.xml或者schema.xml)。这是因为conf下的配置文件通常存储在Zookeeper中,这样配置文件就能够在集群中传播。

      如果你是在嵌入式Zookeeper实例下使用Solr,你还可以看到zoo.cfg和zoo.data,这是Zookeeper的数据和配置文件。但是,如果你是在自己的Zookeeper集群下使用Solr,你应该提供自己的Zookeeper配置文件,Solr中的拷贝就不会用到。更多信息请参考:SolrCloud。

    Solr启动脚本参考(Solr Start Script Reference)

      Solr有一个脚本“bin/solr”用来启动和停止Solr、创建和删除Collection和Core、检查Solr的运行状态、配置分片等。在Solr安装目录下你可以找到bin/目录下的脚本。bin/solr 脚本使得Solr运行时可以使用简单的命令来快速完成共同的目标。本节中,标题下方对应可用的命令。对于每一个命令,可用的选项都有一个对应的例子。在整个Solr参考指南中大多数在bin/solr下的例子都是可用的。但Running Solr and Getting Started with Solr Cloud这节除外。

      启动和停止:

      启动和重启:启动命令启动Solr,重启命令允许你在Solr正在运行的时候重启Solr。

      在SolrCloud模式下,启动和重启命令有几种选项,使用示例配置集,主机名和端口不是默认的,指向本地的Zookeeper集群。

    bin/solr start [options]
    bin/solr start -help
    bin/solr restart [options]
    bin/solr restart -help

      当使用重启命令时,必须使用启动Solr时传递的参数。在后台,停止请求被初始化,所以Solr在再一次启动之前会停止。如果没有节点在运行,重启命令会跳过停止Solr,直接启动。

      可用参数:

      bin/solr脚本提供了许多选项,允许你自定义常用的方法,例如改变监听端口。但是,大多数默认值适合于大多数Solr安装,特别是在刚开始的时候。

    参数
    描述
    示例
    -a "<string>" 使用额外的JVM参数来启动Solr,例如-X。如果你使用-D开头的JVM参数,可以省略-a选项。 bin/solr start -a "-Xdebug -Xrunjdwp:transport=dt_socket, server=y,suspend=n,address=1044"

    -cloud

    在SolrCloud模式下启动Solr,会附带启动嵌入到Solr中的Zookeeper实例。

    这个选项可以简写为-c。

    如果你已经运行了一个Zookeeper集群,你不想使用嵌入的Zookeeper(单节点),你应该通过-z参数。

    更多的细节参考SolrCloud Mode。

    bin/solr start -c
    -d <dir> 定义一个服务器目录,默认是server(如$SOLR_HOME/server),覆盖默认值是不常见的。当同一主机上运行多个Solr实例时,更常见的是使用相同的服务器目录,使用-s选项指定唯一的Solr主目录。 bin/solr start -d newServerDir
    -e <name>

    用一个示例配置来启动Solr,这些示例为你快速的启动Solr,或者只启动特定的功能提供帮助。

    可用的选项有:

    • cloud
    • techproducts
    • dih
    • schemaless

    更多细节参考: Running with Example Configurations

    bin/solr start -e schemaless
    -f 在前台启动Solr,在使用-e选项时不能使用该选项。 bin/solr start -f
    -h <hostname> 指定主机名开启Solr,默认为“localhost”。 bin/solr start -h search.mysolr.com
    -m <memory> 启动Solr时指定JVM堆的最小值(-Xms)和最大值(-Xmx)。 bin/solr start -m 1g
    -noprompt

    隐藏所有提示。

    例如:当使用cloud示例时,一个交互会话会通过几个选项配置你的SolrCloud集群。如果你想默认,可以在你的请求上简单的加上-noprompt选项。

    bin/solr start -e cloud -noprompt
    -p <port> 指定Solr的运行端口,如果不指定,默认为8983. bin/solr start -p 8655
    -s <dir>

    设置solr.solr.home系统属性,Solr将在此目录下创建核心目录。这允许你在一台主机上使用-d选项指定同一个server目录运行多个Solr实例。如果设置了,具体的目录会包括一个solr.xml文件,除非solr.xml在Zookeeper中已经存在。默认值为server/solr。

    当运行示例时,该参数将被忽略,solr.solr.home取决于示例本身。

    bin/solr start -s newHome
    -V 启动Solr并从启动脚本获取详细信息。 bin/solr start -V
    -z <zkHost> 启动Solr时指定Zookeeper的连接字符串。这个选项只与-c选项一起使用,是在SolrCloud模式下启动的。如果不指定该选项,Solr会使用嵌入的Zookeeper。 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脚本可以通过-D选项来设置JVM参数,这允许你设置任意的Java系统属性。例如,设置频率为每秒3次的自动软提交,你可以这么做:

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

      SolrCloud模式:

      -c和-cloud选项是等价的:

    bin/solr start -c
    bin/solr start -cloud

      如果指定了Zookeeper的连接字符串,例如-z 192.168.1.4:2181,那么Solr连接到Zookeeper并加入集群。如果在使用cloud模式启动Solr时没有指定-z选项,Solr就会加载嵌入的Zookeeper,服务器会监听Solrport+1000端口。如果Solr在8983端口运行,那么嵌入的Zookeeper就会监听9983端口。

      重要提示:如果你的Zookeeper连接字符串使用了chroot,例如“localhost:2181/solr”,然后在使用bin/solr脚本加载SolrCloud之前你需要引导/solr zk节点。要做到这一点就要使用Solr附带的zkcli.sh脚本,例如:

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

         当在SolrCloud模式下启动时,互动脚本会话会提示你选择一个配置集使用。关于SolrCloud的更多信息参考:Getting Started With SolrCloud

      在样例配置下运行:

    bin/solr start -e <name>

      这个示例配置能让你快速入门。

      提供了如下示例:

      1. cloud:这个示例一台机器上有1-4个节点的SolrCloud。选择了该示例,有交互会话会提示你选择初始化配置集、节点个数、端口、要创建的Collection等。你可以选择在$SOLR_HOME/server/solr/configsets下的任意可用的配置。

         2. 这个例子是单节点的,示例文档中的schema包含在$SOLR_HOME/example/exampledocs目录下,配置集可以在SOLR_HOME/sever/solr/configsets/sample_techproducts_configs目录下找到。

      3. dih:这个示例中,DataImportHandler (DIH)是可用的,启用和几个例子的dataconfig.xml文件预先配置为不同类型的DIH支持的数据(如数据库内容,电子邮件,RSS订阅等)。所使用的配置集是为DIH自定义的,在$SOLR_HOME/example/example-DIH/solr/conf目录下。关于DIH的更多信息参考:Uploading Structured Data Store Data with the Data Import Handler.

      4. schemaless:这个例子是使用managed schema的单节点模式,就像在Managed Schema Definition in SolrConfig一节中所描述的一样,提供了一个精简的预定义的schema。Solr会使用此配置运行在Schemaless模式下,当往Solr中添加文档时,Solr会动态的匹配字段类型并创建。用到的配置集可以在$SOLR_HOME/server/solr/configsets/data_driven_schema_configs下找到。

      停止:

      停止命令会发送一个STOP请求到正在运行的Solr节点,允许Solr比较优雅的关闭。命令等待5s后就会强制关闭掉Solr进程(kill -9)。

    bin/solr stop [options]
    bin/solr stop -help

      可用参数:

    参数
    描述
    示例
    -p <port> 停止运行在指定端口上的Solr实例。如果你运行了不止一个Solr实例,或者在SolrCloud模式下运行,你同样需要在请求停止时指定端口,或者使用-all选项。 bin/solr stop -p 8983
    -all 停止所有有有效PID的Solr实例。 bin/solr stop -all
    -k <key> 用来保护无意中停止的Solr实例。默认为solrrocks。 bin/solr stop -k solrrocks

      信息:

      版本:version命令简单的返回已经安装并且存在的Solr版本。

    $ bin/solr version
    5.x.0

      状态:状态命令能展示出运行在本地系统的所有Solr节点的JSON格式的基本信息。状态命令使用SOLR PID DIR 环境变量来查找Solr的进程文件以获取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"}}

      健康监测:

      在SolrCloud模式下健康监测命令为每个Collection生成JSON格式的健康监测报告。健康报告提供了关于Collection的每个分片的副本状态信息,包括已提交的文件数量和当前的状态信息。

    bin/solr healthcheck [options]
    bin/solr healthcheck -help

      可用参数:

    参数
    描述
    示例
    -c <collection> 需要监测的Collection(必要) bin/solr healthcheck -c gettingstarted
    -z <zkhost> Zookeeper连接字符串,默认是localhost:8983,如果你的Solr运行端口不是8983,需要指定具体的Zookeeper连接字符串。默认端口是Solrport+1000. bin/solr healthcheck -z localhost:2181

      下面是一个使用非标准的Zookeeper连接字符串健康监测请求和响应的示例,有两个节点在运行。

    $ 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脚本还可以帮助你创建Collections(在SolrCloud模式下)或者cores(单节点模式),或者删除Collections。

      注:创建需要相应的权限。

      创建命令会监测Solr的运行模式(SolrCloud或者standalone),创建Collections或者Cores取决于运行模式。

    bin/solr create options
    bin/solr create -help

      可用参数:

    参数
    描述
    示例
    -c <name> 要创建的collection或者core的名字(必须)。 bin/solr create -c mycollection

    -d <confdir>

    配置目录, 默认为 data_driven_schema_configs.

    在SolrCloud模式下运行时,参考:Configuration Directories and SolrCloud。

    bin/solr create -d basic_configs
    -n <configName> 配置名, 默认和core或者collection名字相同。 bin/solr create -n basic
    -p <port>

    命令发送到本地Solr实例的端口号,默认的,脚本会尝试通过正在运行的Solr实例来检测端口。

    这个选项对于在同一台机器上运行多个Solr实例时选择具体的实例创建core很有用。

    bin/solr create -p 8983

    -s <shards>

    -shards

    collection的分片数量,默认值为1,只在SolrCloud模式下使用。 bin/solr create -s 2

    -rf <replicas>

    -replicationFactor

    collection中的文档的备份数,默认值为1.(无复制)。 bin/solr create -rf 2

      配置目录和SolrCloud:

      在SolrCloud中创建一个collection之前,需要把用到的配置目录上传到Zookeeper。创建命令支持集合和配置目录是如何工作的几种情况,你需要确定Zookeeper的配置目录是否要在多个Collection中共享。我们通过几个例子来说明SolrCloud的配置目录是如何工作的。

      首先,如果你不使用-d或者-n选项,默认的配置($SOLR_HOME/server/solr/configsets/data_driven_schema_configs/conf)会被上传到Zookeeper中,使用与Collection相同的名字。例如,接下来的命令就会导致the data_driven_schema_configs配置被上传到Zookeeper的/configs/contacts下:bin/solr create -c contacts,如果你使用bin/solr create -c contacts2创建另一个collection,data_driven_schema_configs会拷贝一份上传到Zookeeper的/configs/contacts2下。你对contacts collection做出的任何改变都不会影响到contacts2 collection。简单的说,默认的创建行为,会为你创建的collection创建一个唯一的副本。

      你可以使用-n选项覆盖Zookeeper中配置目录的名字,例如,bin/solr create -c logs -d basic_configs -n basic命令就会上传server/solr/configsets/basic_configs/conf目录到Zookeeper并命名为/configs/basic。

      请注意,我们使用了-d选项来指定与默认值不同的配置。Solr提供了在server/solr/configsets目录下的几个内置配置。当然,你也可以使用-d选项来指定你的配置目录。例如,bin/solr create -c mycoll -d /tmp/myconfigs会上传/tmp/myconfigs到Zookeeper的/configs/mycoll下。再次重申,配置目录使用和collection一样的名字,除非你使用-n来指定。

      使用-n选项可以指定共享配置的collection,例如下面的命令创建一个新的collection并且共享已经存在的basic配置:

     bin/solr create -c logs2 -n basic

      Data-driven schema和共享配置:

      data_driven_schema_configs schema可以变异为被索引的数据,因此,我们不推荐你在collection之间共享data-driven配置,除非你确定所有的collection都要继承其中一个collection的索引数据的变化。

      删除:

      delete命令会监测Solr运行在什么模式下(standalone或者SolrCloud)然后删除具体的core或者collection。

    bin/solr delete [options]
    bin/solr delete -help

      如果运行在SolrCloud模式下,delete命令会检查配置目录是否在被其他collections使用,如果没有配置目录会从Zookeeper中删除。例如,如果你用bin/solr create -c contacts命令创建了一个collection,然后删除命令bin/solr delete -c contacts 会检查/configs/contacts配置目录是否被其他collection使用,如果没有,/configs/contacts 目录就会从Zookeeper中删除。

      可用参数:

    参数
    描述
    示例
    -c <name> 要删除的collection名字(必须) bin/solr delete -c mycoll

    -deleteConfig <true|false>

    删除Zookeeper中的配置目录,默认为true。

    如果配置目录在被其他的collection使用,则设置为true,配置目录也不会被删除。

    bin/solr delete -deleteConfig false
    -p <port>

    发送删除命令的Solr的本地实例的端口。默认,脚本会尝试寻找Solr实例来检测端口。

    如果你的同一台机器上有多个独立运行的实例,因此会要求你指定具体实例的core。

    bin/solr delete -p 8983

      Zookeeper选项:

      bin/solr脚本允许某些操作影响Zookeeper。这些操作只在SolrCloud模式下使用。

    bin/solr zk [options]
    bin/solr zk -help

      注:Solr在发出这些命令之前至少要初始化Solr期望的Zookeeper znodes节点一次。一旦Zookeeper被初始化,Solr不需要运行在任何一个节点上就可以使用这些命令。

      上传一个配置集:

      使用这个Zookeeper子命令上传预定义的配置集或者自定义的配置集之一到Zookeeper。

      可用参数:(所有参数都是必须的)

    参数
    描述
    示例
    -upconfig 从本地文件系统上传配置集到Zookeeper -upconfig
    -n <name>

    Zookeeper中配置集的名称。这个命令会上传配置集到configs Zookeeper节点。

    你可以从管理控制UI上看见所有已经上传的配置集。选择cloud->tree->configs来看。

    如果指定了现有的预配置集,它将会被覆盖。

    -n myconfig

    -d <configset dir>

    需要上传的配置集路径,它应该有一个conf文件夹,需要包含solrconfig.xml等。

    如果只提供了一个名字,$SOLR_HOME/server/solr/configsets会被检查,使用绝对路径来代替。

    -d directory_under_configsets

    -d /absolute/path/to/configset/source

    -z <zkHost>

    Zookeeper连接字符串

    -z 123.321.23.43:2181

      使用这些参数的上传命令的一个例子:

    bin/solr zk -upconfig -z 111.222.333.444:2181 -n mynewconfig -d /path/to/configset

      这个命令执行之后不会自动生效!它只是上传配置集到Zookeeper。你可以使用Collections API来向使用此配置集的所有Collection发出RELOAD命令。

      下载数据集:

      使用这个Zookeeper子命令来下载Zookeeper中的数据集到本地文件系统。

      可用参数:(所有参数都是必须的)

      

    参数
    描述
    示例
    -downconfig 下载Zookeeper中的数据集到本地文件系统。  -downconfig
    -n <name> 要下载的数据集名称, Admin UI>>Cloud>>tree>>configs 节点列出了所有可用的数据集。 -n myconfig

    -d <configset dir>

    将数据集下载到哪个路径下。

    如果只提供了名称,SOLR_HOME/server/solr/configsets 会是父路径。

    也支持绝对路径。

    在这两种情况下,在目的目录已经存在的配置集将会被覆盖。

    -d directory_under_configsets -d /absolute/path/to/configset/destination

    -z <zkHost>

    Zookeeper连接字符串。

    -z 123.321.23.43:2181

      使用这些参数的下载命令的一个例子:

    bin/solr zk -downconfig -z 111.222.333.444:2181 -n mynewconfig -d /path/to/configset

      一个“最佳实践”是将你的配置集在某种版本管理系统中记录。这种情况下,downconfig很少被使用。

    译者注:关于Solr的中文资料很少,官方文档是非常好的资料,在此翻译供大家参考。在翻译的过程中加入了自己的理解,保留了一些术语和概念性的词汇。一些用处不大的地方省略掉了,由于水平有限时间有限,难免有错误和不准确的地方,欢迎交流。剩下的内容还在翻译中,欢迎关注。

      

       

  • 相关阅读:
    hdoj-1013-Digital Roots(九余数定理)
    hdu-1012-u Calculate e(水题)
    hdoj-1005-Number Sequence
    JavaScript--收藏栏添加按钮,放大hdu题目字体
    string和double之间的相互转换(C++)
    轻谈 return i++
    Java中equals和==之间的区别
    进程的内核栈、用户栈
    关于Linux中cd的一些快捷用法
    Mac 下如何使用sed -i命令
  • 原文地址:https://www.cnblogs.com/wxisme/p/5205217.html
Copyright © 2011-2022 走看看