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

      

       

  • 相关阅读:
    容器跨主机网络通信学习笔记(以Flannel为例)
    Kubernetes控制器Job和CronJob
    记一次使用Flannel插件排错历程
    Kubernetes控制器Deployment
    Kubernetes如何通过StatefulSet支持有状态应用?
    react18 来了,我 get 到...
    gojs 实用高级用法
    vuecli3 vue2 保留 webpack 支持 vite 成功实践
    calibre 报错 This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem. 解决
    unable to recognize "*.yaml": no matches for kind "RoleBinding" in version "rbac.authorization.k8s.io/v1beta1"
  • 原文地址:https://www.cnblogs.com/wxisme/p/5205217.html
Copyright © 2011-2022 走看看