ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

elasticsearch 入门

2019-05-17 16:54:25  阅读:322  来源: 互联网

标签:about 文档 入门 ElasticSearch elasticsearch rock climbing name


概念:

我们的应用经常需要添加检索功能,开源的 ElasticSearch 是目前全文搜索引擎的首选。他可以快速的存储、搜索和分析海量数据。Spring Boot通过整合Spring Data ElasticSearch为我们提供了非常便捷的检索功能支持;

Elasticsearch是一个分布式搜索服务,提供Restful API,底层基于Lucene,采用多shard(分片)的方式保证数据安全,并且提供自动resharding的功能,github等大型的站点也是采用了ElasticSearch作为其搜索服务。

 

  • 以 员工文档 的形式存储为例:一个文档代表一个员工数据。存储数据到 ElasticSearch 的行为叫做 索引 ,但在索引一个文档之前,需要确定将文档存储在哪里。

  • 一个 ElasticSearch 集群可以 包含多个 索引 ,相应的每个索引可以包含多个 类型 。 这些不同的类型存储着多个 文档 ,每个文档又有 多个 属性 。

  • 类似关系:

    索引-数据库   /  类型-表  /  文档-表中的记录  /   属性-列

 

put :放数据
get :获取数据
head:检查是否存在该数据,有则响应200,没有就404


http://192.168.0.113:9200/megacorp/employee/1

{
    "first_name" : "John",
    "last_name" : "Smith",
    "age" : 25,
    "about" : "I love to go rock climbing",
    "interests" : [ "sports","music"]
}


{
    "first_name" : "Jane",
    "last_name" : "Smith",
    "age" : 32,
    "about" : "I like to collect rock albums",
    "interests" : [ "music"]
}


{
    "first_name" : "Douglas",
    "last_name" : "Fir",
    "age" : 35,
    "about" : "I like to build cabinets",
    "interests" : [ "forestry"]
}

http://192.168.0.113:9200/megacorp/employee/_search

http://192.168.0.113:9200/megacorp/employee/_search?q=last_name:Smith




get没有请求体,所以放到post请求里面

轻量搜索:
{
"query" : {
    "match" : {
        "last_name" : "Smith"
    }
}
}

全文检索:
字段包含rock /   climbing  都可能出现
{
"query" : {
    "match" :{
    "about" : "rock climbing"
    }
}
}

 "max_score": 0.53484553   :  相关性得分


 短语搜索:
 内容完全匹配才会展示 
 {
"query" : {
    "match_phrase" :{
    "about" : "rock climbing"
    }
}
}

高亮搜索:
 {
"query" : {
    "match_phrase" :{
    "about" : "rock climbing"
    }
},
"highlight" : {
    "fields" : {
    "about" : {}
    }
}
}
结果:<em>rock</em> <em>climbing</em>

 

标签:about,文档,入门,ElasticSearch,elasticsearch,rock,climbing,name
来源: https://www.cnblogs.com/MagicAsa/p/10882078.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有