标签:展示 多个 操作 clu 实现 ext path chown 邮件服务
本教程使用环境:java8或者更高版本、Solr8.1、centos7
本篇将用三个部分具体练习以引领对Solr的快速体验。每个练习将基于前一个练习。
方便统一操作,我们将solr安装在/opt 路径下
~$ mv solr-7.7.0.zip /opt/
~$ unzip -q solr-7.7.0.zip
#或者是:tar -zxvf solr-7.7.0.zip
~$ cd solr-7.7.0/
Techproducts
样例数据目标:
启动Solrbin/solr start -e cloud
。
注:这将开启一个交互式会话,在机器上开启两个Solr服务。
solr-7.7.0:$ ./bin/solr start -e cloud
Welcome to the SolrCloud example!
This interactive session will help you launch a SolrCloud cluster on your local workstation.
To begin,how many Solr nodes would you like to run in your local cluster? (specify 1-4 nodes)[2]:
你想在本地集群创建多少个节点,默认2个。本例中只需两个节点,直接Enter默认。为建立外部zookeeper集群,因此solr将连接内置的zookeeper。
分别为两个节点选择端口号
#第一个节点
Ok, let's start up 2 Solr nodes for your example SolrCloud cluster.
Please enter the port for node1 [8983]:
#第二个节点
Please enter the port for node2 [7574]:
除非你了解这两个节点已经被占用,我们建议直接Enter选择默认节点即可。
启动完成后将创建一个collection,并要求为其取名
Now let's create a new collection for indexing documents in your 2-node cluster.
Please provide a name for your new collection: [gettingstarted]
在后面我们将索引一些solr下称作techproducts
数据的样例数据,所以为了区别于其他的collection,我们将其命名为techproducts。在提示处键入techproducts并回车确认。
在两个节点间拆分索引分片
How many shards would you like to split techproducts into? [2]
选择默认的2,意味着在两个节点间相对平均地进行索引分片。对于我们的双节点集群来说,默认选项是个好的选择。
为分片创建副本
How many replicas per shard would you like to create? [2]
回车默认即可。分片的副本一般会在多个节点中保存,当然此例中仅有两个节点。
为我们创建的collection选择一个配置文件
Please choose a configuration for the techproducts collection, available options are:
_default or sample_techproducts_configs [_default]
一个collection必须要有一个configSet(sets of configuration files),solr提供了两个可直接使用的configSet
由于本实验将使用solr提供的样例数据,所以回车默认即可。
一个configSet至少包含两个主配置文件schema file(schema.xml或者managed-schema)以及solrConfig.xml
通过solr提供的bin/post
工具采集样例数据
bin/post -c techproducts example/exampledocs/*
若无报错,可通过 http://ip:8983/solr/#/techproducts/query来访问solr的图形管理界面,如下:
? 下面简单介绍一下这个图形管理界面的一些信息:
标号为q的文本框:qBox。它支持单术语搜索和多术语搜索(即短语搜索),多术语搜索时,只 要其中一个在索引中匹配到了solr就返回其结果。qBox还支持组合搜索,术语前加“+”号,表示必须匹配,相反,加“-”号表示,禁 止匹配该术语。rowsBox限制最大返回条数。
额外补充命令
#删除collection
bin/solr delete -c techproducts
#创建自己的collection
bin/solr create -c <yourCollection> -s 2 -rf 2
#关闭Solr所有的节点
bin/solr stop -all
9. 在启动过程中可能遇到的问题,以及注意事项
以非root用户启动solr,为此创建普通用户solruseradd solr && echo "1234"|passwd --stdin solr
Solr用户对solr的安装目录及其子目录(文件)须得有访问权限,在此我们直接将其所属者改为solr
chown solr:solr /opt/solr-7.7.2
安装好lsof
这个工具(用于展示已经打开的文件),solr需要使用这个东西。
将solr可执行文件路径导入环境变量,方便操作(直接输入命令,无需加绝对路径)。修改solr家目录下的.bash_profile
或者/etc/profile
都可以,修改内容如下:
export SOLR_HOME=/opt/solr-7.7.2
export PATH=$PATH:$SOLR_HOME/bin
若是在虚拟机或者远程服务器中运行,必须要开启防火墙中相应的端口号。
./bin/solr start -c -p 8983 -s example/cloud/node1/solr
./bin/solr start -c -p 7574 -s example/cloud/node2/solr -z localhost:9983
schema是一个独立的xml文件,它存储着:
因为本练习使用的全新的数据集,所以新建collection。使用默认的configSet,它包含一个最小化的schema,由solr自行根据数据推断出要添加哪些字段信息。
#分别指定collection的名字,shard和replicas的数量
bin/solr create -c films -s 2 -rf 2
注:当我们不指定configSet时,他默认就使用_default
这个configSet
Preparing Schemaless for the Films Data
使用_default
configSet,schama有两点注意:
managed schema
,他被配置为只能使用Solr提供的Schema API来做修改。Schema API允许我们修改字段、字段类型以及其他schema规则。solrconfig.xml
中配置的"field guessing"。这使得我们在索引文档前无需手动添加字段,直接启动solr,这就是他叫做schemaless
的原因。但是“field guessing”这种简单粗暴的方式也是有缺陷的。一旦它“guess wrong”,那么你除非重新索引,否则无法修改字段信息。而如果这个索引量非常庞大的话就很可怕了。解决方式:schema api与schemaless混合使用,利用schema api定义一个或几个关键字段,剩余的非关键字段交给solr去guess。
Create the "names" Field
curl -X POST -H 'Content-type:application/json' --data-binary '{"add-field": {"name":"name",
"type":"text_general", "multiValued":false, "stored":true}}'
http://localhost:8983/solr/films/schema
Create a "catchall" Copy Field
从所有字段中采集数据,并建立索引到一个叫做
_text_
的字段中。
curl -X POST -H 'Content-type:application/json' --data-binary '{"add-copy-field" :
{"source":"*","dest":"_text_"}}' http://localhost:8983/solr/films/schema
#To Index JSON Format
bin/post -c films example/films/films.json
#To Index XML Format
bin/post -c films example/films/films.xml
#To Index CSV Format
bin/post -c films example/films/films.csv -params
"f.genre.split=true&f.directed_by.split=true&f.genre.separator=|&f.directed_by.separator=|"
参数解释
将查询的结果分类,并且统计每个分类的数量
Field Facets
#按"genre"字段分组,并统计数量
curl "http://localhost:8983/solr/films/select?q=*:*&rows=0&facet=true&facet.field=genre_str"
#使用facet.mincount限制返回返回分类数量的最小值
curl "http://localhost:8983/solr/films/select=&q=*:*&facet.field=genre_str&facet.mincount=200&fa
cet=on&rows=0"
对返回的结果分段,而不是一堆零碎的结果
curl 'http://localhost:8983/solr/films/select?q=*:*&rows=0''&facet=true''&facet.range=initial_release_date''&facet.range.start=NOW-20YEAR''&facet.range.end=NOW''&facet.range.gap=%2B1YEAR'
允许使用两个至多个字段嵌套为各种可能的组合
#以逗号分隔多字段
#返回某一类型的film由同意导演执导的影片数量
curl "http://localhost:8983/solr/films/selectq=*:*&rows=0&facet=on&facet.pivot=genre_str,directe
d_by_str
bin/solr delete -c films
在最后一个练习中,我们将探索索引本地数据,而不再是solr提供的样例数据
在实验开始之前,先创建将要使用的collection
bin/solr create -c myfiles -s 2 -rf 2
Local Files with bin/post
数据格式: JSON,XML,CSV,HTML,PDF,MS word,纯文本等。
数据准备: 假设数据放在家目录下,~/myDocument
数据采集: bin/post -c myfiles ~/myDocument
DataImportHandler
用于连接数据库、邮件服务,或者其他结构化的数据源
SolrJ
一个用于和Solr交互的,基于java的客户端。通过编码创建文档发送到solr。
Documents Screen
通过Admin UI提供的Document Tab添加索引文档。
无论索引多少次都不会出现相同的结果,因为在schema中指定了唯一字段id
。当向Solr添加新的文档,这个唯一值存在重复时,那么新的文档将会自动替换旧的文档。
清除collection中的数据并不会改变事先对字段的定义。
#删除指定文档
bin/post -c myfiles -d "<delete><id>SP2514N</id></delete>"
#删除所有文档
bin/post -c myfiles -d "<delete><query>*:*</query></delete>"
停止solr,并将环境重置到初始状态
bin/solr stop -all ; rm -Rf example/cloud/
标签:展示 多个 操作 clu 实现 ext path chown 邮件服务
原文地址:https://www.cnblogs.com/randolf/p/11020383.html