关于elasticsearch与kibana、IK分词器

这篇具有很好参考价值的文章主要介绍了关于elasticsearch与kibana、IK分词器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

初识elasticsearch-正向索引和倒排索引

什么是文档和词条?
每一条数据就是一个文档
对文档中的内容分词,得到的词语就是词条

elasticsearch就是面对文档存储的,可以是数据库中的一条商品数据,一个订单信息,文档数据会被反序列化为json格式后存储在elasticsearch中。
什么是正向索引?
基于文档id创建索引。查询词条时必须先找到文档,而后判断是否包含词条

什么是倒排索引?
对文档内容分词,对词条创建索引,并记录词条所在文档信息。查询是现根据词条查询到文档id,而后获取到文档。
例子:id= 1 ,title = 华为小米充电器  id = 2,title = 小米手环
生成词条 文档id = 1 词条term= 华为  文档id = 1,2  词条term= 小米
通过词条查询文档id,在查询到文档

索引(Index):

索引(index):相同类型的文档的集合(有种mysql数据库的表(table)的感觉)
映射(mapping):索引中文档的字段约束信息,类似表的结构约束(类似于表的字段类型约束表结构(schema))
文档(Document):就是一条条的数据,类似数据库中的行(Row),文档都是json格式
字段(Filed):就是JSON文档中的字段,类似数据库中的列(Column)
请求语句(DSL):提供的JSON风格的请求语句,用来操作elasticsearch,实现CRUD

区别:mysql擅长事务类型操作,可以确保数据的安全和一致性
     elasticsearch擅长数据的搜索、分析、计算

分词器:

1、分词器作用:
创建倒排索引时对文档分词
用户搜索时,对输入的内容分词
2IK分词器有几种模式:
ik_smart :智能切分,粗粒度
ik_max_word:最细切分,细粒度
3IK分词器如何扩展词条,如何停用词条
利用config目录的ikAnalyzer.cfg.xml文件添加扩展词典和停用词典
在词典中添加扩展词条或者停用词条

索引常见mapping属性:

type:字段数据类型,常见的简单类型有:
字符串:text(可分词的文本)keyword(精确值,例如国家、品牌等不可拆)
数值:long、integer、shortbytedoublefloat、
布尔:boolean
日期:date
对象:object

index:是否创建索引,默认为true
analyzer:使用哪种分词器
properties:该字段的子字段

创建索引库:

es中通过Restful请求操作索引库、文档。请求内容用DSL语句来表示。创建索引库和mapping的DSL语法如下:
PUT /example
{
   "mappings": {
     "properties": {
        "class":{
         "type":"text",
         "analyzer":"ik_smart"
        },
         "cources":{
           "type":"keyword",
           "index":"false"
         },
          "name":{
           "properties":{
             "firstName": {
               "type":"keyword"
               }
              }
             },
           //略
         }}}

查看、删除索引库:

查看索引库:get /索引库名
删除索引库:delete /索引库名
索引库和mapping一旦创建无法修改,但是可以添加新的字段:
put /索引库名/_mapping
{
  "properties": {
    "新字段名":{
      "type":"integer"
      }
     }
  }

文档操作:
添加文档:

新增文档DSL语法:
POST /索引库名/_doc/文档id
{  
    "字段1:"1",
    "字段2":{
    "子属性1":"值2",
    "子属性2":"值3"
   },
   //  ...
}

删除文档的语法:

DELETE /索引库名/_doc/文档id

修改文档
方式一:全量修改,会删除旧文档,添加新文档

PUT /索引库名/_doc/文档id
{  
    "字段1:"1",
    "字段2":{
    "子属性1":"值2",
    "子属性2":"值3"
   },
   //  ...
}

方法二:增量修改,修改指定字段值

POST /索引库名._update/文档id
{  
     "doc": {
       "字段名": "新的值",
       }
 }

RestClient操作索引库:
es提供了各种不同语言的客户端,这些客户端本质就是组装DSL,通过http请求发送给es

创建索引库
private RestHighLevelClient client;
@BeforeEach
void setUp(){
   this.client = new RestHighLevelClient(RestClient.builder(
   				HttpHost.create("http://192.168.0.1:9200")
   				));
   			}
   			
@AfterEach
void tearDown() throws IOException {
   client.close();
   }
   
@Test
void testCreateHotelIndex() throws IOException {
  //1、创建Request对象  (请求路径,索引库名称)
  CreateIndexRequest request = new CreateIndexRequest("hotel");
  //2、请求参数,MAPPING_TEMPLATE是静态常量字符串,内容是创建索引库的DSL语句
  request.source(MAPPING_TEMPLATE,XContentType.JSON);
  //3、发起请求
  client.indices().create(request,RequstOptions.DEFAULT);
  }

删除索引库

@Test
void testDeleteHotelIndex() throws IOException {
  //1、创建Request对象  (请求路径,索引库名称)
  DeleteIndexRequest request = new CreateIndexRequest("hotel");
  GetIndexRequest requestExist = new CreateIndexRequest("hotel");
  //删除索引库
  client.indices().delete(request,RequstOptions.DEFAULT);
  //判断是否存在索引库
   boolean exist = client.indices().exists(requestExist ,RequstOptions.DEFAULT);
  }

RestCient 操作文档:文章来源地址https://www.toymoban.com/news/detail-712596.html

添加酒店数据到索引库
@Test
void testIndexDocument() throws IOException {
   //1、创建Request对象  (索引库名称,id)
   IndexRequest request = new IndexRequest("indexName").id("1");
   //准备json文档
   request.source("{\"name\":\"Jack\",\"age\":21}".XContentType.JSON);
   //3、发送请求
   client.index(request,RequestOptions.DEFAULT);
 }

到了这里,关于关于elasticsearch与kibana、IK分词器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Docker安装部署Elasticsearch+Kibana+IK分词器

    目前elastic官网推荐使用的两个版本分别是: 8.10.2 7.17.13 我尝试安装8.x版本的,不过似乎由于虚拟机内存大小的原因集群状态总是转为RED无法重置elastic账户的密码,因此我最终选择使用7.x版本的elasticsearch,8.x版本的默认使用https来保证数据的安全性,感兴趣的同学可以自行尝

    2024年02月07日
    浏览(47)
  • 安装Elasticsearch,kibana可视化工具,ik分词器

    1.Elasticsearch下载地址:Elasticsearch 8.12.2 | Elastic Elasticsearch 8.12.2 | Elastic https://www.elastic.co/cn/downloads/past-releases/elasticsearch-8-12-2 Elasticsearch 8.12.2 | Elastic下载完成后直接解压,在bin目录下启动elasticsearch.bat文件启动完成后访问http://localhost:9200/看到以下内容就表示安装成功了 2.安装k

    2024年04月28日
    浏览(49)
  • Docker上安装Elasticsearch、Kibana 和IK分词器

    随着大数据和日志管理的兴起,Elasticsearch和Kibana成为了许多开发者和系统管理员首选的工具,我接下来使用的版本是 8.11.0 ,我实测测试过都能成功安装的版本有: 7.6.2 、 8.1.0 、 8.6.0 等。 安装Elasticsearch Docker仓库官网 步骤一:创建Docker网络 为了让Elasticsearch和Kibana能够相互

    2024年01月19日
    浏览(50)
  • Elasticsearch下载安装,IK分词器、Kibana下载安装使用,elasticsearch使用演示

    首先给出自己使用版本的网盘链接:自己的版本7.17.14 链接:https://pan.baidu.com/s/1FSlI9jNf1KRP-OmZlCkEZw 提取码:1234 一般情况下 Elastic Search(ES) 并不单独使用,例如主流的技术组合 ELK(Elasticsearch + Logstash + Kibana ) 1. Elasticsearch下载 下载之前,先看下和 JDK 版本的对应关系,版本

    2024年02月05日
    浏览(47)
  • Docker安装部署[8.x]版本Elasticsearch+Kibana+IK分词器

    在我发的上一个博客里记录了如何安装7.x版本的elasticsearch,我在跟着教学学习Java Rest Client的时候发现在elastic的官网上Java Rest Client已经被标注为过时了,elastc提供了全新的Elasticsearch Java API Client,作为程序员,应该勇于去尝试新技术,因此我决定继续尝试使用elasticsearch8.x版本

    2024年02月05日
    浏览(52)
  • 服务器安装配置elasticsearch,kibana,IK分词器和拼音分词器,集群搭建教程

    elasticsearch安装教程大全 elasticsearch学习笔记(一) elasticsearch学习笔记(二) elasticsearch学习笔记(三) 可参考:Debian安装docker Centos安装docker (docker-compose可以直接互连) 因为我们还需要部署kibana容器,因此需要让es和kibana容器互联。这里先创建一个网络: Elasticsearch 和 kibana 版

    2023年04月08日
    浏览(44)
  • Docker安装ElasticSearch、Kibana、IK分词器以及设置ES账户密码

    版本声明: 系统 :CentOS 7.9(云服务器) ES版本 :7.6.1 Kibana :7.6.1 Ik分析器版本 :7.6.1 1、拉取镜像 2、创建挂载目录 设置所有用户读写执行权限 : sudo chmod -R 777 /docker_config/elasticsearch/ 3、创建elasticsearch.yml 配置文件 4、创建容器 参数说明 : -p 端口映射 -e discovery.type=single

    2023年04月09日
    浏览(71)
  • docker安装elasticsearch kibana 8.6.0(设置密码+汉化+ik分词器)

    记得开放使用的端口,或者关闭防火墙 提示:需要提升虚拟机或者服务器的内存到8G以上 拉取镜像并安装 设置密码 进入es容器,设置密码 生成签名 把这一串复制到kibana网页(服务器ip+5601)中 记得要快,好像是30分钟的期限 出现验证代码请求 退出es,进入kibana容器生成code 复制这个

    2024年02月03日
    浏览(50)
  • windows下安装ELK:elasticsearch、elasticsearch-head、elasticsearch-kibana、elasticsearhc-ik(ik分词器)

    1、ElasticSearch下载地址: https://www.elastic.co/cn/downloads/past-releases#elasticsearch https://www.elastic.co/cn/downloads/past-releases#elasticsearch  2、将压缩包移动到D:/apps/installsoft/ 将elasticsearch-8.2.3-windows-x86_64.zip解压 进行基本配置:在elasticsearch-8.2.3文件夹下的config文件夹 #1、elasticsearch.yml,注意

    2024年02月09日
    浏览(43)
  • 搜索引擎elasticsearch :安装elasticsearch (包含安装组件kibana、IK分词器、部署es集群)

    kibana可以帮助我们方便地编写DSL语句,所以还要装kibana 因为我们还需要部署kibana容器,因此需要让es和kibana容器互联。这里先创建一个网络: 这里我们采用elasticsearch的7.12.1版本的镜像,这个镜像体积非常大,接近1G。不建议大家自己pull。 课前资料提供了镜像的tar包: 大家将

    2024年02月16日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包