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对象,决定如何处理结果集合 ...
随机推荐
- 18、实现strStr()
18.实现strStr() 实现 strStr() 函数. 给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 ( ...
- Linux基础:CentOS安装python3.7
1.下载python3 wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz 2.解压 [root@mycentos ~]# ta ...
- java开发环境配置——JDK
虽然网上有很多类似的文章了,第一次搭的时候也是看的网上的文章,但为了做个记录,自己也写一下,记录一下. 首先是先安装JDK,JDK下载可以直接去官网下载,地址:http://www.oracle.co ...
- vue 如何点击按钮返回上一页
1,vue 如何点击按钮返回上一页呢? 这是vue挂载的范围html代码 <div @click="goOff()">返回</div> 下面是点击返回的方法 ...
- Cesium 之简介以及离线部署运行篇
前言 cesium 官网的api文档介绍地址cesium官网api,里面详细的介绍 cesium 各个类的介绍,还有就是在线例子:cesium 官网在线例子,这个也是学习 cesium 的好素材. C ...
- Mysql表分区的选择与实践小结
在一些系统中有时某张表会出现百万或者千万的数据量,尽管其中使用了索引,查询速度也不一定会很快.这时候可能就需要通过分库,分表,分区来解决这些性能瓶颈. 一. 选择合适的解决方法 1. 分库分表. 分库 ...
- 【阿里云】在 Windows Server 2016 下使用 FileZilla Server 安装搭建 FTP 服务
Windows Server 2016 下使用 FileZilla Server 安装搭建 FTP 服务 一.安装 Filezilla Server 下载最新版本的 Filezilla Server ...
- Android为TV端助力 播放视频卡顿问题
问题分析: 1.连接服务器,ping IP 看看有没有丢包 2.写一个只有mediaplayer的Demo,放到同款的盒子或者电视,保证网咯也是一样的情况下,看看Demo卡不卡 如果一直不卡,那有可能 ...
- 坚定关于考研或者工作的决定:work
转眼之间,我已经夸过了大二结束的节点,已经是一个准大三了: 在这个岔路口,首要的选择就是考研和工作的选择:我也有过犹豫要不要考研,最终还是放弃了考研的想法,从考研的利弊两个方面来谈: 首 ...
- Typora 快捷键
今天学习了一下这个工具.很轻便,很好用的. 无序列表:输入-之后输入空格 有序列表:输入数字+“.”之后输入空格 任务列表:-[空格]空格 文字 标题:ctrl+数字 表格:ctrl+t 生成目录:[ ...