ES 应用
1. ES的不同之处: 全文检索、处理同义词、通过相关性给文档评分, 从同样的数据中生成分析与聚合数据, 实时大型批处理。
安装es与kibana
1、下载:https://www.elastic.co/downloads/elasticsearch
2、解压到d:\elasticsearch-2.3.3目录
3、配置Elasticsearch
(1)配置 config\elasticsearch.yml文件
cluster.name: lgs-es
node.name: node-1
(2)配置 bin\elasticsearch.in.bat文件
set ES_MIN_MEM=4g
set ES_MAX_MEM=4g
4、运行服务
双击 bin\elasticsearch.bat 运行
2、安装kibana插件
(1)下载地址: https://www.elastic.co/downloads/kibana
(2)解压到d:\kibana-4.5.1-windows目录
(3)配置config\kibana.yml文件
elasticsearch.url: "http://localhost:9200"
(4)bin\kibana.bat //启动kibana
(5)浏览器输入http://localhost:5601
2. 查看集群状态:
http://localhost:9200/_cluster/health
3. 设置分片: 它本身就是一个完整的搜索引擎, 我们的文档被存储和索引到分片内,但是应用程序是直接与索引而不是与分片进行交互
PUT /blogs
{
"settings" : {
"number_of_shards" : 3,
"number_of_replicas" : 1
}
}
4. 设置存储:
_index : 一个索引仅仅是逻辑上的命名空间, 这个命名空间由一个或者多个分片组合在一起。
_type : types 的文档可能有不同的字段,但最好能够非常相似。
ID : 是一个字符串, 当它和 _index
以及 _type
组合就可以唯一确定 Elasticsearch 中的一个文档。 当你创建一个新的文档,要么提供自己的 _id
,要么让 Elasticsearch 帮你生成。
5. 分布式存储:
分片规则:: shard = hash(routing) % number_of_primary_shards routing: 文档 _id
6. 搜索:
/_all/u*,tweet/_search 在多索引搜索
GET /_search?size=5&from=5 分页
GET /_search?q=mary 查询所有包含 mary 字符串的文档 GET /_search 匹配查询
{
"query": {
"match": {
"tweet": "elasticsearch"
}
}
} { 合并查询
"bool": {
"must": { "match": { "tweet": "elasticsearch" }},
"must_not": { "match": { "name": "mary" }},
"should": { "match": { "tweet": "full text" }},
"filter": { "range": { "age" : { "gt" : 30 }} }
}
} GET /_search 多级排序查询
{
"query" : {
"bool" : {
"must": { "match": { "tweet": "manage text search" }},
"filter" : { "term" : { "user_id" : 2 }}
}
},
"sort": [
{ "date": { "order": "desc" }},
{ "_score": { "order": "desc" }}
]
}
7. Mapping结构
8. 使用分析器:
GET /_analyze
{
"analyzer": "standard",
"text": "Text to analyze" 要分析(分词)的文本
}
9. 语言处理
GET /my_index/my_type/_search
{
"query": { 短语查询 slop 参数告诉 match_phrase 查询词条相隔多远时仍然能将文档视为匹配
"match_phrase": {
"title": {
"query": "quick fox",
"slop": 1
}
}
}
} GET /my_index/my_type/_search
{
"query": {
"bool": {
"must": { must 子句从结果集中包含或者排除文档
"match": {
"title": {
"query": "quick brown fox",
"minimum_should_match": "30%"
}
}
},
"should": { should 子句增加了匹配到文档的相关度评分。
"match_phrase": {
"title": {
"query": "quick brown fox",
"slop": 50
}
}
}
}
}
} GET /my_index/address/_search
{
"query": {
"regexp": { 正则查询
"postcode": "W[0-9].+" }
}
} {
"match_phrase_prefix" : { 即时查询: 相当于 walker johnnie bl*
"brand" : {
"query": "walker johnnie bl", "slop": 10
}
}
}
PUT /my_index/my_type/_mapping 为索引与搜索构建不同的索引
{
"my_type": {
"properties": {
"name": {
"type": "string",
"index_analyzer": "autocomplete", "search_analyzer": "standard" }
}
}
}
10. 实践
GET /news/test/_search
{
"query": {
"match_phrase": {
"content": {
"query": "活动 后勤",
"slop": 20
}
}
}
} GET /_analyze
{
"analyzer": "standard",
"text": "Text to analyze"
} GET /news/test/_mapping PUT /test/test/1
{
"bookId":1,
"bookName":"Java程序设计",
"publishDate":"2018-01-12"
} PUT /test/
{
"mappings":{
"books": {
"properties": {
"bookId": {"type": "text"},
"bookName": {"type": "text"},
"publishDate": {"type": "date"}
}
}
}
} GET /test/books/_mapping GET _cat/indices DELETE /books #mapping可以新增 不能更改
PUT /test/books/_mapping
{
"books": {
"properties": {
"bookName2": {
"type": "text",
"analyzer": "english",
"search_analyzer": "standard" }
}
}
}
ES 应用的更多相关文章
- 【AR实验室】OpenGL ES绘制相机(OpenGL ES 1.0版本)
0x00 - 前言 之前做一些移动端的AR应用以及目前看到的一些AR应用,基本上都是这样一个套路:手机背景显示现实场景,然后在该背景上进行图形学绘制.至于图形学绘制时,相机外参的解算使用的是V-SLA ...
- OpenGL ES 3.0: 图元重启(Primitive restart)
[TOC] 背景概述 在OpenGL绘制图形时,可能需要绘制多个并不相连的图形.这样的情况下这几个图形没法被当做一个图形来处理.也就需要多次调用 DrawArrays 或 DrawElements. ...
- 分享一个CQRS/ES架构中基于写文件的EventStore的设计思路
最近打算用C#实现一个基于文件的EventStore. 什么是EventStore 关于什么是EventStore,如果还不清楚的朋友可以去了解下CQRS/Event Sourcing这种架构,我博客 ...
- ES 学习总结
ES 总结: es 是基于lucene的, 是java 实现的, 很多概念和lucene是相同的 索引-- 对应数据库的表,mongoDB中的集合 文档,由字段组成, 一个字段可以出现多次. 字段,其 ...
- ES性能测试
测试背景 因为ES(ElasticSearch)前段时间查询效率有点慢,技术小组对索引做了一些改动,因此需要测试一下修改后的查询效率,跟之前的结果做一下对比,所以有了这次测试. 需求简述 ...
- [翻译]ES 提案: global
Jordan Harband 的 ECMAScript 提案“global”现在处于第三阶段.该提案提供了一种新的用于访问全局对象的标准方式. 全局对象的引用 下面是常用的几种引用全局对象的方式: 全 ...
- ElasticSearch+ElasticGeo+Geoserver发布ES地理数据
依赖GeoserverElasticSearchElasticGeo部署部署ElasticGeo使用创建ES数据源并发布发布 依赖 Geoserver 环境搭建参考: ElasticSearch 环境 ...
- opengl es中不同的绘制方式
opengl es中不同的绘制方式 转载请保留出处:http://xiaxveliang.blog.163.com/blog/static/297080342013467344263/ 1. GL_P ...
- es查询命令备份(只需要网页9200/_plugin/head/就可以访问)
本文只是写一些常用es命令,这里不用任何客户端,只用 9200/_plugin/head/ 那个端口网页就可以,然后是复合查询. 注意es其实一个idnex只能有一个type,如果一个index做了多 ...
- lucene和es总结
一.首先介绍lucene涉及到的排序过程 1.1.如何自定义排序对象 你可以自定义collector对象: 亦可以自定义comparator对象: 可以自定义scoredoc对象,决定如何处理结果集合 ...
随机推荐
- Java 浅拷贝和深拷贝
一看就懂的,java深拷贝浅拷贝 将一个对象的引用复制给另外一个对象,一共有三种方式.第一种方式是直接赋值,第二种方式是浅拷贝,第三种是深拷贝.所以大家知道了哈,这三种概念实际上都是为了拷贝对象啊. ...
- Spring Cloud Eureka 常用配置及说明
配置参数 默认值 说明 服务注册中心配置 Bean类:org.springframework.cloud.netflix.eureka.server.EurekaServerConfigBean eu ...
- ELK 日志采集 实战教程
概要 带着问题去看教程: 不是用logstash来监听我们的日志,我们可以使用logback配置来使用TCP appender通过TCP协议将日志发送到远程Logstash实例. 我们可以使用Logs ...
- 2019前端面试题汇总(主要为Vue)
摘要: 经典面试题. 原文:2019前端面试题汇总(主要为Vue) 作者:前端小酱 Fundebug经授权转载,版权归原作者所有. 毕业之后就在一直合肥小公司工作,没有老司机.没有技术氛围,在技术的道 ...
- 细说addEventListener与事件捕获
细说addEventListener与事件捕获.事件冒泡(一)addEventListener的基本用法 在复杂的项目开发中,javascript和html的解耦变得至关重要,我们被推荐使用事件动态绑 ...
- 荣耀MagicBook黑苹果(i7)High Sierra 10.13.6
这里有大佬维护的新版本EFI,对应10.14.4:https://github.com/hjmmc/Honor-Magicbook ---------------------------------- ...
- arcgis api 3.x for js 入门开发系列三地图工具栏(附源码下载)
前言 关于本篇功能实现用到的 api 涉及类看不懂的,请参照 esri 官网的 arcgis api 3.x for js:esri 官网 api,里面详细的介绍 arcgis api 3.x 各个类 ...
- Android远程桌面助手之系统兼容篇
Android远程桌面助手理论上兼容Android4.4至Android8.1之间所有的原生安卓系统,其他第三方ROM,如MIUI.Flyme.EMUI和Smartisan OS等也都陆续测试过,目前 ...
- MongoDB 如何实现备份压缩
背景及原理 数据库的备份是灾难恢复的最后一道屏障,不管什么类型的数据库都需要设置数据库备份,MongoDB也不例外.MongoDB 3.0 后 ,数据库可以采用Wiredtiger存储引擎后(3.2 ...
- Linux创建和挂载XFS文件系统测试实践
XFS文件系统简介 维基百科关于XFS的简介如下: XFS is a high-performance 64-bit 年,由Silicon Graphics为他们的IRIX操作系统而开发,是IRIX ...