Apache Solr7.4 入门教程(三)

七 Solr 管理台

1. Dashboard 仪表盘

显示Solr的基本信息,包含solr版本,包含系统内存和jvm内存的使用情况,jvm参数等 。

2. Logging

solr的运行日志, 用来查看solr运行是否有警告或者异常,以便及时处理 

2.1 level

配置solr的日志级别 

3. Core Admin

索引库管理 

4. Java Properties

可查看到Java相关的一些属性的信息

5. Thread Dump

当前活跃线程

6. Core Selector

核心选择器,选择要操作的索引库

6.1. Overview(概览)

查看索引的情况,例如:看看Num docs数量是否增加。包含基本统计如当前文档数;和实例信息如当前核心的配置目录;

6.2. Analysis(分析)

检验分词效果,用来诊断潜在的 文本分析 的查询/索引问题。注意FieldType需要选定为与被分析内容类型一致。

6.3 DataImport

修改$SOLR_HOME/server/solr/<索引库名>/conf/solrconfig.xml,添加如下内容

<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
    <lst name="defaults">
      <str name="config">data-config.xml</str>
    </lst>
</requestHandler>

在$SOLR_HOME/server/solr/<索引库名>/conf/文件目录下创建data-config.xml文件,内容如下:

<?xml version="1.0" encoding="UTF-8" ?>
<dataConfig>
<dataSource type="JdbcDataSource"
     driver="com.mysql.jdbc.Driver"
     url="jdbc:mysql://localhost:3306/hobart-solr"
     user="root"
     password="root"/>
<document>
  <entity name="user" query="SELECT * FROM user ">
     <field column="uid" name="uid"/>
     <field column="usercode" name="user_code"/>
     <field column="account" name="account"/>
     <field column="password" name="password"/>
     <field column="username" name="user_name"/>
     <field column="birthday" name="birthday"/>
     <field column="gender" name="gender"/>
     <field column="lastLoginTime" name="last_login_time"/>
     <field column="updateTime" name="update_time"/>
  </entity>
</document>
</dataConfig>

修改$SOLR_HOME/server/solr/<索引库名>/conf/目录下的managed-schema文件,添加如下内容:

  <field name="uid" type="string" indexed="true" stored="true" />
  <field name="user_code" type="string" indexed="true" stored="true" />
  <field name="user_account" type="string" indexed="true" stored="true" />
  <field name="user_username" type="string" indexed="true" stored="true" />
  <field name="user_birthday" type="string" indexed="true" stored="true" />
  <field name="user_address" type="string" indexed="true" stored="true" />
  <field name="user_birthday" type="string" indexed="true" stored="true" />
  <field name="user_gender" type="string" indexed="true" stored="true" />
  <field name="user_last_login_time" type="string" indexed="true" stored="true" />
  <field name="user_update_time" type="string" indexed="true" stored="true" />

将以下jar 包 拷入 $SOLR_HOME/server/solr-webapp/webapps/WEB-INF/lib/ 下:

solr-dataimporthandler-7.3.1.jar
solr-dataimporthandler-extras-7.3.1.jar
mysql-connector-java-5.1.46.jar(因为我用的 是Mysql 所以拷mysql的驱动包,其他数据库对应拷其驱动包)

重启Solr, 会出现如下图 

 commad 参数取值 

full-import 全量导入 删除以前服务器上的所有索引,然后重新导入数据 

delta-import 增量导入,只更新修改数据,可能是修改,可能是添加, 在进行增量导入时切记将clean 参数设置为false,否则将删除以前的索引 

clean 决定在建立索引之前,删除以前的索引(默认:true) 

commit 决定这个操作之后是否commit(默认:true) 

optimeize 决定这个操作之后是否要优化(默认:true) 

entity: entity是document下面的标签(data-config.xml)。 使用这个参数可以有选择的执行一个或多个entity。使用多个entity参数可以使得多个entity 同时 运行。如果 不选择此参数那么所有的都会被执行。

debug 是否以调试模式运行,适用于交互开发中。(若以调试模式运行,默认不会自动提交,需加参数commit=true) 

6.4 Document

在这里 可以完成 对索引的 增 删 改 

在doc标签和field标签中增加权重(boost),增加权重后,可以在搜索的时候做权重过滤。

<add>
  <doc boost="2.5">
    <field name="gameId">05991</field>
    <field name="gameName" boost="2.0">angrybird</field>
  </doc>
</add>

field标签 update = “add” | “set” | “inc” 在4.0之后的版本可以自动对field做增加和删除了。 

增加字段例子

<add>
  <doc>
    <field name="gameId">05991</field>
    <field name="gameName" update="set">angrybird</field>
    <field name="skills" update="add">fly</field>
  </doc>
</add>

同一个字段多个值的例子

<add>
  <doc>
    <field name="gameId">05991</field>
    <field name="skills" update="set">fly</field>
    <field name="skills" update="set">shot</field>
    <field name="skills" update="set">dump</field>
  </doc>
</add> 

把字段清空的例子

<add>
  <doc>
    <field name="gameId">05991</field>
    <field name="skills" update="set" null="true" />
  </doc>
</add

添加json格式的索引和xml的类似,只需要在Document Type中选择json即可。 {"id":"s10001","name":"江小白"} 

删除索引

<delete>
   <query> id:"100861"</query>
</delete>
<commit/>

或者
<delete>
     <id>100861</id>
</delete>
<commit/>  


删除所有索引

<delete>
     <query>*:*</query>
</delete>
<commit/>

6.5 Files

索引库的所有配置文件

6.6 Ping

在核心名称下选择 Ping 会发出一个 ping 请求来检查核心是否启动并响应请求。 

6.7 Plugins/Status

Solr 插件界面显示有关每个 Solr 内核中运行的各种插件的状态和性能的信息和统计信息。您可以找到有关 Solr 高速缓存的性能,Solr 搜索者的状态以及请求处理程序和搜索组件配置的信息。

6.8. Query(查询)

这是一个查询界面,用的比较多,用来查询索引的文档,包含是否存在,排序是否正确等。稍后会介绍相关的查询参数。

Solr运算符
“:” 指定字段查指定值,如返回所有值:
“?” 表示单个任意字符的通配
“” 表示多个任意字符的通配(不能在检索的项开始使用或者?符号)
“~” 表示模糊检索,如检索拼写类似于”roam”的项这样写:roam~将找到形如foam和roams的单词;roam~0.8,检索返回相似度在0.8以上的记录。
邻近检索,如检索相隔10个单词的”apache”和”jakarta”,”jakarta apache”~10
“^” 控制相关度检索,如检索jakarta apache,同时希望去让”jakarta”的相关度更加好,那么在其后加上”^”符号和增量值,即jakarta^4 apache
布尔操作符AND、||
布尔操作符OR、&&
布尔操作符NOT、!、- (排除操作符不能单独与项使用构成查询)
“+” 存在操作符,要求符号”+”后的项必须在文档相应的域中存在
( ) 用于构成子查询
[] 包含范围检索,如检索某时间段记录,包含头尾,date:[200707 TO 200710]
{} 不包含范围检索,如检索某时间段记录,不包含头尾 
date:{200707 TO 200710}
/ 转义操作符,特殊字符包括+ - && || ! ( ) { } [ ] ^ ” ~ * ? : / 

注:①“+”和”-“表示对单个查询单元的修饰,and 、or 、 not 是对两个查询单元是否做交集或者做差集还是取反的操作的符号 
比如:AB:china +AB:america ,表示的是AB:china忽略不计可有可无,必须满足第二个条件才是对的,而不是你所认为的必须满足这两个搜索条件 如果输入:AB:china AND AB:america ,解析出来的结果是两个条件同时满足,即+AB:china AND +AB:america或+AB:china +AB:america 总而言之,查询语法: 修饰符 字段名:查询关键词 AND/OR/NOT 修饰符 字段名:查询关键词。

Solr查询语法
最普通的查询,比如查询姓张的人( Name:张),如果是精准性搜索相当于SQL SERVER中的LIKE搜索这需要带引号(”“),比如查询含有北京的(Address:”北京”)
多条件查询,注:如果是针对单个字段进行搜索的可以用(Name:搜索条件加运算符(OR、AND、NOT) Name:搜索条件),比如模糊查询( Name:张 OR Name:李 )单个字段多条件搜索不建议这样写,一般建议是在单个字段里进行条件筛选,如( Name:张 OR 李),多个字段查询(Name:张 + Address:北京 )
排序,比如根据姓名升序(Name asc),降序(Name desc)

6.9 Replication

Solr 流界面允许您输入流式表达式并查看结果。它与查询屏幕非常相似,不同的是输入框位于顶部,所有选项必须在表达式中声明。 该界面会将所有内容插入到流式表达式本身,因此您不需要输入带有主机名、端口、集合等的完整 URI。只需在expr= part 之后输入表达式,URL 就会根据需要动态构建。 在输入框下,执行按钮将运行表达式。“with explanation” 选项将显示已执行的流式表达的各个部分。在此之下,将显示流式结果。也可以在浏览器中查看输出的 URL。

6.10. Schema

显示当前的schema的配置文件,即schema.xml的内容,例如:可以看到schema.xml 中的配置的字段等信息。 使用 Solr schema界面,您可以在浏览器窗口中查看架构数据。 如果您从分析界面访问了此窗口,则它将打开到特定字段、动态字段规则或字段类型。如果未选择任何选项,请使用下拉菜单选择字段或字段类型。 

架构浏览器界面提供了有关 Schema 中每个特定字段和字段类型的大量有用信息,并提供了使用 Schema API(如果已启用)添加字段或字段类型的快速 UI 。在上面的例子中,我们选择了这个 cat 字段。在主视图窗口的左侧,我们看到字段名称,它被复制到text(由于copyField规则),并使用 strings 字段类型。单击这些字段或字段类型名称之一,您可以看到相应的定义。
 

猜你喜欢

转载自blog.csdn.net/a1405/article/details/84970625
今日推荐