shard
PUT /nba/_doc/1
{
"name": "哈登",
"team_name": "⽕箭",
"position": "得分后卫",
"play_year": "10",
"jerse_no": "13"
}
GET /nba/_search_shards?routing=1
"nodes":{
"V1JO7QXLSX-yeVI82WkgtA":{
"name":"node-1",
"ephemeral_id":"_d96PgOSTnKo6nrJVqIYpw",
"transport_address":"192.168.1.101:9300",
"attributes":{
"ml.machine_memory":"8589934592",
"xpack.installed":"true",
"ml.max_open_jobs":"20"
}
},
"z65Hwe_RR_efA4yj3n8sHQ":{
"name":"node-3",
"ephemeral_id":"MOE_Ne7ZRyaKRHFSWJZWpA",
"transport_address":"192.168.1.101:9500",
"attributes":{
"ml.machine_memory":"8589934592",
"ml.max_open_jobs":"20",
"xpack.installed":"true"
}
}
},
"indices":{
"nba":{
}
},
"shards":[
[
{
"state":"STARTED",
"primary":true,
"node":"V1JO7QXLSX-yeVI82WkgtA",
"relocating_node":null,
"shard":2,
"index":"nba",
"allocation_id":{
"id":"leX_k6McShyMoM1eNQJXOA"
}
},
{
"state":"STARTED",
"primary":false,
"node":"z65Hwe_RR_efA4yj3n8sHQ",
"relocating_node":null,
"shard":2,
"index":"nba",
"allocation_id":{
"id":"6sUSANMuSGKLgcIpBa4yYg"
}
}
]
]
}
顾名思义,就是很悲观,每次去拿数据的时候都认为别⼈会修改,所以每次在拿数据的时候都会上锁,这样别⼈想拿这个数据就会阻塞,直到它拿到锁。传统的关系型数据库⾥边就⽤到了很多这种锁机制,⽐如⾏锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。
创新互联专注于娄星企业网站建设,响应式网站,成都商城网站开发。娄星网站建设公司,为娄星等地区提供建站服务。全流程按需规划网站,专业设计,全程项目跟踪,创新互联专业和态度为您提供的服务
顾名思义,就是很乐观,每次去拿数据的时候都认为别⼈不会修改,所以不会上锁,但是在更新的时候会判断⼀下在此期间别⼈有没有去更新这个数据,⽐如可以使⽤版本号等机制。乐观锁适⽤于多读的应⽤类型,这样可以提⾼吞吐量,因为我们elasticsearch⼀般业务场景都是写少读多,所以通过乐观锁可以在控制并发的情况下⼜能有效的提⾼系统吞吐量。
GET /nba/_doc/1
{
"_index" : "nba",
"_type" : "_doc",
"_id" : "1",
"_version" : 1,
"_seq_no" : 4,
"_primary_term" : 7,
"found" : true,
"_source" : {
"name" : "哈登",
"team_name" : "⽕箭",
"position" : "得分后卫",
"play_year" : "10",
"jerse_no" : "13"
}
}
POST /nba/_doc/1?versinotallow=2&version_type=external
{
"name": "哈登",
"team_name": "⽕箭",
"position": "得分后卫",
"play_year": "10",
"jerse_no": "13"
}
PUT test/_doc/1
{
"msg":"乔丹是篮球之神"
}
POST /test/_search
{
"query": {
"match": {
"msg": "乔丹"
}
}
}
PUT test/_mapping
{
"properties": {
"msg_chinese":{
"type":"text",
"analyzer": "ik_max_word"
}
}
}
POST test/_doc/1
{
"msg":"乔丹是篮球之神",
"msg_chinese":"乔丹是篮球之神"
}
POST /test/_search
{
"query": {
"match": {
"msg_chinese": "乔"
}
}
}
POST /test/_search
{
"query": {
"match": {
"msg": "乔"
}
}
}
为什么同样是输⼊'乔',为什么msg能匹配出⽂档,⽽msg_chinese不能呢?
POST test/_analyze
{
"field": "msg",
"text": "乔丹是篮球之神"
}
乔,丹,是,篮,球,之,神
POST test/_analyze
{
"field": "msg_chinese",
"text": "乔丹是篮球之神"
}
乔丹, 是, 篮球, 之神
POST test/_search
{
"query": {
"match": {
"msg_chinese": {
"query": "乔丹",
"analyzer": "standard"
}
}
}
}
char filter : 字符过滤器
tokenizer : 分词器
token filter :token过滤器
字符过滤器以字符流的形式接收原始⽂本,并可以通过添加、删除或更改字符来转换该流。⼀个分析器可能有0个或多个字符过滤器。
⼀个分词器接收⼀个字符流,并将其拆分成单个token (通常是单个单词),并输出⼀个token流。⽐如使⽤whitespace分词器当遇到空格的时候会将⽂本拆分成token。"eating anapple" >> [eating, and, apple]。⼀个分析器必须只能有⼀个分词器
POST _analyze
{
"text": "eating an apple",
"analyzer": "whitespace"
}
token过滤器接收token流,并且可能会添加、删除或更改tokens。⽐如⼀个lowercase token fifilter可以将所有的token转成⼩写。⼀个分析器可能有0个或多个token过滤器,它们按顺序应⽤。
standard分析器
Stanard tokenizer
Standard Token Filter
Lower Case Token Filter
当前标题:深入挖掘ElasticSearch的原理
网站路径:http://www.shufengxianlan.com/qtweb/news21/409671.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联