• Elasticsearch中文分词+全文搜索


    中文分词+全文搜索

    本文假设你已经搭建好elasticsearch服务器,并在上面装了kibana和IK中文分词组件

    elasticsearch+kibana+ik的安装,之前的文章有介绍,可参考。

    mapping介绍:定义索引(index)类型(type)的元数据,包括:数据类型、分词行为、建立倒排索引行为、搜索行为等。在搜索的时候会根据这个mapping定义的分词行为、搜索行为进行搜索。

    1、创建索引

    1 PUT news

     2、创建mapping

     1 POST news/new/_mapping
     2 {
     3     "new": 
     4     {
     5         "properties": 
     6         {
     7             "title":
     8             {
     9                 "type": "text",
    10                 "fields": {
    11                     "keyword": 
    12                     {
    13                         "type": "keyword",
    14                         "ignore_above": 256
    15                     }
    16                 }
    17             },
    18             "content": 
    19             {
    20                 "type": "text",
    21                 "analyzer": "ik_max_word",
    22                 "search_analyzer": "ik_max_word"
    23             }
    24         }
    25     }
    26 }

    有两个字段:title和content

    3、插入数据

    1 PUT news/new/1
    2 {
    3   "title":"印度将因4大矛盾惨败中国 1项曾使印度国母被杀",
    4   "content":"一大堆最近中国和阿三闹矛盾词语,此处省略N字。。。"
    5 }
    1 PUT news/new/2
    2 {
    3   "title":"印度不要敬酒不吃吃罚酒满嘴跑火车 想想1962年",
    4   "content":"一大堆最近中国和阿三闹矛盾词语,此处省略N字。。。" 
    5 }
    1 PUT news/new/3
    2 {
    3   "title":"莫迪就中印对峙发声:靠“亚洲古老传统”解决问题",
    4   "content":"一大堆最近中国和阿三闹矛盾词语,此处省略N字。。。" 
    5 }

    4、全文检索+高亮显示

    全文检索:

     1 GET news/new/_search
     2 {
     3     "query" : 
     4     { 
     5       "match" : 
     6       { 
     7         "content" : "中国 印度 "
     8       }
     9     }
    10 }

    高亮显示

     1 GET news/new/_search
     2 {
     3         "query" : 
     4         { 
     5           "match" : 
     6             { 
     7                   "content" : "中国 印度 "
     8             }
     9         }
    10       , 
    11       "highlight":
    12       {
    13         "pre_tags" : ["<tag1>", "<tag2>"],
    14         "post_tags" : ["</tag1>", "</tag2>"],
    15         "fields" : {
    16             "content" : {}
    17         }
    18     }
    19 }

    elasticsearc实例讲解增删改查

    https://www.cnblogs.com/subendong/p/7295549.html

    1、首先弄明白四个概念

    elasticsearch 关系型数据库
    index 数据库
    type
    document
    field 字段

    如果刚一开始理解比较困难,那你就在心中默念100遍,10遍也可以。。。

    如果你做过面向对象开发,我觉得elasticsearch的这四个概念还是很好理解的。

    需要重点说明的是document就是一个json格式的字符串,里面包括N个字段。我们可以想象将面向对象语言里面的一个对象序列化成json字符串。

    关系型数据库需要先建库,再建表。elasticsearch不需要,在你新增的时候会根据你指定的index,type,document,field自动创建。当然先创建索引也是可以的。

    好文学习自:https://www.cnblogs.com/subendong/p/7308647.html

    下载及环境安装

    https://www.elastic.co/cn/downloads/elasticsearch

  • 相关阅读:
    8-12接口测试进阶-1数据驱动
    8-5接口测试用例设计与编写-4
    用CentOS 7打造合适的科研环境
    linux版本qq的安装
    CentOS下安装福昕PDF软件
    CENTOS install summary
    centos6 install mplayer(multimedia)
    基于u盘安装centos6.0
    CentOS6.3挂载读写NTFS分区
    制作win7+ubuntu +winPE+CDlinux多系统启动U盘
  • 原文地址:https://www.cnblogs.com/zhaosq/p/11654042.html
Copyright © 2020-2023  润新知