百度AnyQ之八——solr的一些知识点

参考:Solr 05 - Solr Web管理界面的基本使用

1. CoreAdmin - Solr核心

Solr Core的管理界面. 在这里可以添加Solr Core实例(有Bug, 不推荐使用Solr管理界面添加Solr Core).
上面添加core的时候重启就是因为这个


2. Java Properties - Java参数

其中关于jetty,默认自带的一个服务,在java properties中都可以看到。
在这里插入图片描述
同时在指定的jetty.home中,可以看到很多和jetty相关的文件
在这里插入图片描述

3. Core selector - (重点)——Schema Browser

其中包括 Schema Browser - 约束信息浏览
在这里可以查看到当前Collection中的所有Field的信息:

是否主键、是否索引、是否分词、是否存储、是否优化等信息, 还能看到具体某个Field的文档直方图, 也就是在倒排索引中出现的次数等信息.
在这里插入图片描述
一开始去collection1/conf/schema.xml.bak这个文件中找了一下,有没有和载入的faq数据集相关的字段的配置,没有找到。
想起当时faq数据加载脚本中还有一个代码

SCHEMA_FILE=`pwd`/faq/schema_format
FAQ_JSON=`pwd`/faq/faq_json
python ${SCRIPT_PATH}/make_json.py $FAQ_FILE $SCHEMA_FILE $FAQ_JSON

随即去build/faq中,查看schema_format文件,其中包含以下内容

[
    {
    
    
        "indexed": true,
        "stored": true,
        "type": "text_multi_lang",
        "name": "question"
    },
    {
    
    
        "indexed": false,
        "stored": true,
        "type": "string",
        "name": "answer"
    }
]

可以看到,对于answer答案是没有添加索引的,只对question添加了索引。这是因为只需要快速检索问题(找出和query最匹配的问题),答案就有了,就可以返回了。所以检索question比较重要。

由于没有对answer进行索引,所以在这里schema browser中看不见它的情况
在这里插入图片描述

在这里插入图片描述

4. Core selector - (重点)——Documents

mask_core中faq数据集的样子(json格式):

扫描二维码关注公众号,回复: 13590282 查看本文章
{
    
    
"answer": "您需要拥有一个百度账号,用来登录百度云,可以点击此处注册百度账户。如您以前拥有百度推广账户,同样可以登录百度云。", 
"question": "需要使用什么账号登录?", 
"id": "1"
}
  • 这里可以直接对Solr中存储的索引文档进行增删改操作.

  • 请求处理器中, /update表示更新索引: Solr默认根据id(唯一约束)域来更新Document的内容:

    • 如果根据id值搜索不到id域, 则执行添加操作;
    • 如果根据id值搜索到了id域, 则执行更新操作.
  • json格式是用来添加或者更新文档的(直接就是文档的样子),可以看看给的默认示例
    在这里插入图片描述

  • 这里按照默认的faq格式,随便加一个(原先的是16条faq)

    {
          
          "answer": "带上口罩吧,狗命要紧", "question": "别人都带口罩,我需要带吗?", "id": "17"}
    

    在这里插入图片描述
    然后可以查询看看效果,直接试试通过post请求,http://XXXX:8886/anyq?question=需要戴口罩吗?
    在这里插入图片描述
    然后发现,确实这样一条一条的添加,索引确实可以直接更新生效,在结果中体现了这一点。

  • 如果需要删除,则需要使用xml格式,例如(指定要删除的文档的索引):

       <delete>
       <id>17</id>
       </delete>
       <commit/>
    

    在这里插入图片描述

  • 然后去看这个overview,里面就只剩16条了,刚刚加的那个就被删除了

5. Core selector - (重点)——Query

参考:Solr 08 - 在Solr Web管理页面中查询索引数据 (Solr中各类查询参数的使用方法)

例如:
在这里插入图片描述

  • q: 是query的简写, 指定查询表达式.

    : ——表示查询所有, 比如: question:账号, 表示"question"字段中包含"账号".

  • fq: 是filter query的简写, 是一个数组, 可以指定多个. 在q的查询结果中, 执行过滤. 前提是: 必须先指定q查询.

猜你喜欢

转载自blog.csdn.net/Castlehe/article/details/121405030