Elasticsearch ááẠLucene ááŸáá·áº Java ááŒáá·áºáá±ážáá¬ážáá¬ážáá±á¬ json rest api áá«ááŸááá±á¬ááŸá¬ááœá±áá±ážá¡ááºáá»ááºáá
áºáá¯ááŒá
áºáááºá áá®á¡ááºáá»ááºáá²á· á¡á¬ážáá¬áá»ááºá¡á¬ážáá¯á¶ážááᯠáá±á¬áºááŒáá»ááºááŸá¬ áááá¯ááºáá«áááºá
á á¬ááœááºá á¬áááºážáá±áá¬áá±á·á áºááœáẠááŸá¯ááºááœá±ážáá±á¬ááŸá¬ááœá±ááŸá¯áá»á¬ážá¡ááœáẠá¡áá¬ážáá°á¡ááºáá»ááºáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯áá«áááºá á¥ááá¬á¡á¬ážááŒáá·áºá áá¬áá¬á áá¬ážá áá¯ááºáá¯á¶ááá¹áá¬ááºááᯠááá·áºááœááºážá ááºážá á¬ážááŒá®áž ááŸá¬ááœá±ááŒááºáž ááá¯á·ááá¯áẠáááá®ááŒááááááºáá»á¬ážááŒáá·áº ááŸá¬ááœá±áá«á
á€áá±á¬ááºážáá«ážááœáẠááá±á¬á·ááºááá¯á·á áºáá»á¬ážááᯠá¡ááœáŸááºážáá±ážááŒááºážááá°áá¬ááᯠá¡áá¯á¶ážááŒá¯á ES á á¡ááŒá±áá¶á¡ááŒá±á¬ááºážáá»á¬ážááᯠááŒá±á¬ááŒáá«áááºá á á¬ááœááºá á¬áááºážáá»á¬ážááᯠá á áºáá¯ááºáááºážá á¡áá»áá¯ážá¡á á¬ážááœá²á ááŸá¬ááœá±áááºážááᯠáá»áœááºá¯ááºááŒáá«áááºá
áááºáááºááŸá¯á
áá
áºá¡áá±á«áº ááá°áááºá
á±áááºá áá»áœááºá¯ááºááẠCURL ááᯠá¡áá¯á¶ážááŒá¯á ES ááá¯á· áá±á¬ááºážááá¯áá»ááºá¡á¬ážáá¯á¶ážááᯠááŒá¯áá¯ááºáá«áááºá google chrome áá¯áá±á«áºáá±á¬ plugin áá
áºáá¯áááºážááŸááááºá
á
á¬áá¬ážááœáẠá
á¬ááœááºá
á¬áááºážááŸáá·áº á¡ááŒá¬ážáááºážááŒá
áºáá»á¬ážááá¯á· ááá·áºááºáá»á¬áž áá«ááŸááááºá á¡áá¯á¶ážááœáẠá
á¬ááœááºá
á¬áááºážá¡á¬áž á¡ááŒááºáááºáá±á¬ááºááẠááá·áºááºáá»á¬ážááŸááááºá ááááºážááŸá®ážáá±á¬ á¡áá¯á¶ážá¡ááŸá¯ááºážáá»á¬ážá á¡áááá¹áá«ááºááœáá·áºááá¯áá»ááºáá»á¬ážááœáẠááœá±á·ááá¯ááºáááºá
ES ááᯠááá·áºááœááºážááŒááºážá
áá«ááá¯áá¯ááºááá¯á· á¡áááºáá¯á¶áž Java ááá¯áá«áááºá Developer áá»á¬áž
ES ááŒáá·áºáá»á®áá±ážááŸá¬ áááá¯ááºáá«áááºá bin/elasticsearch
. áááá¯ááºáááºá
áááºáááºááŒááºážááŸáá·áº á áááºááŒá®ážáá±á¬ááºá áá¯ááºáá±á¬ááºááá¯ááºá áœááºážááᯠá á áºáá±ážááŒáá·áºááŒáá«á áá¯á·á
# ÐŽÐ»Ñ ÑЎПбÑÑва запПЌМОЌ аЎÑÐµÑ Ð² пеÑеЌеММÑÑ
#export ES_URL=$(docker-machine ip dev):9200
export ES_URL=localhost:9200
curl -X GET $ES_URL
á€áá²á·ááá¯á·áá±á¬á¡áá¬áá áºáá¯ááᯠáá»áœááºá¯ááºááá¯á·áááŸááá«áááº-
{
"name" : "Heimdall",
"cluster_name" : "elasticsearch",
"version" : {
"number" : "2.2.1",
"build_hash" : "d045fc29d1932bce18b2e65ab8b297fbf6cd41a1",
"build_timestamp" : "2016-03-09T09:38:54Z",
"build_snapshot" : false,
"lucene_version" : "5.4.1"
},
"tagline" : "You Know, for Search"
}
ááœáŸááºážááááºáž
ES ááœáẠááá¯á·á áºáá áºáᯠááá·áºááŒáá«á áá¯á·á
# ÐПбавОЌ ЎПкÑÐŒÐµÐœÑ c id 1 ÑОпа post в ÐžÐœÐŽÐµÐºÑ blog.
# ?pretty ÑказÑваеÑ, ÑÑП вÑвПЎ ЎПлжеМ бÑÑÑ ÑелПвекП-ÑОÑаеЌÑÐŒ.
curl -XPUT "$ES_URL/blog/post/1?pretty" -d'
{
"title": "ÐеÑелÑе кПÑÑÑа",
"content": "<p>СЌеÑÐœÐ°Ñ ÐžÑÑПÑÐžÑ Ð¿ÑП кПÑÑÑ<p>",
"tags": [
"кПÑÑÑа",
"ÑЌеÑÐœÐ°Ñ ÐžÑÑПÑОÑ"
],
"published_at": "2014-09-12T20:44:42+00:00"
}'
áá¬áá¬áá¯á¶á·ááŒááºááŸá¯-
{
"_index" : "blog",
"_type" : "post",
"_id" : "1",
"_version" : 1,
"_shards" : {
"total" : 2,
"successful" : 1,
"failed" : 0
},
"created" : false
}
ES ááẠá¡ááá¯á¡áá»á±á¬áẠáááºáá®ážáááºá
# ÐПлÑÑОЌ mapping вÑеÑ
ÑОпПв ОМЎекÑа blog
curl -XGET "$ES_URL/blog/_mapping?pretty"
áá¬áá¬áá¯á¶á·ááŒááºááŸá¯ááœááºá áá»áœááºá¯ááºááẠááŸááºáá»ááºáá»á¬ážááœáẠá¡ááœáŸááºážááŒá¯áá¬ážáá±á¬ á á¬ááœááºá á¬áááºážá á¡ááœááºáá»á¬ážá áááºááá¯ážáá»á¬ážááᯠáá±á«ááºážááá·áºáá²á·áááº-
{
"blog" : {
"mappings" : {
"post" : {
"properties" : {
/* "content": "<p>СЌеÑÐœÐ°Ñ ÐžÑÑПÑÐžÑ Ð¿ÑП кПÑÑÑ<p>", */
"content" : {
"type" : "string"
},
/* "published_at": "2014-09-12T20:44:42+00:00" */
"published_at" : {
"type" : "date",
"format" : "strict_date_optional_time||epoch_millis"
},
/* "tags": ["кПÑÑÑа", "ÑЌеÑÐœÐ°Ñ ÐžÑÑПÑОÑ"] */
"tags" : {
"type" : "string"
},
/* "title": "ÐеÑелÑе кПÑÑÑа" */
"title" : {
"type" : "string"
}
}
}
}
}
}
ES ááẠáááºááá¯ážáá
áºáá¯áááºážááŸáá·áº áááºááá¯ážáá»á¬áž array á¡ááŒá¬áž áááœá²ááŒá¬ážááŒá±á¬ááºáž ááŸááºáá¬ážááá¯ááºáááºá á¥ááá¬á¡á¬ážááŒáá·áºá áá±á«ááºážá
ááºá¡ááœááºááœáẠáá±á«ááºážá
ááºáá
áºáᯠááá¯ážááŸááºážá
áœá¬ áá«áááºááŒá®áž tags á¡ááœááºááœáẠáááºážááá¯á·ááᯠááŒá±áá¯á¶ááœá²áá¬ááœáẠáá°áá®áá±á¬áááºážááŒáá·áº ááá¯ááºá
á¬ážááŒá¯áá¬ážáá±á¬áºáááºáž áááºážááá¯á·ááœáẠá
á¬ááŒá±á¬ááºážáá»á¬ážáá«ááŸááááºá
ááŒá±áá¯á¶ááœá²ááŒááºážá¡ááŒá±á¬ááºáž áá±á¬ááºááŸááŒá±á¬áá«áááºá
áá±á¬ááºážááá¯áá»ááºáá»á¬áž
áááºážá ID ááŒáá·áº á á¬ááœááºá á¬áááºážááᯠááŒááºáááºááá°áá±áááº-
# ОзвлеÑеЌ ЎПкÑÐŒÐµÐœÑ Ñ id 1 ÑОпа post Оз ОМЎекÑа blog
curl -XGET "$ES_URL/blog/post/1?pretty"
{
"_index" : "blog",
"_type" : "post",
"_id" : "1",
"_version" : 1,
"found" : true,
"_source" : {
"title" : "ÐеÑелÑе кПÑÑÑа",
"content" : "<p>СЌеÑÐœÐ°Ñ ÐžÑÑПÑÐžÑ Ð¿ÑП кПÑÑÑ<p>",
"tags" : [ "кПÑÑÑа", "ÑЌеÑÐœÐ°Ñ ÐžÑÑПÑОÑ" ],
"published_at" : "2014-09-12T20:44:42+00:00"
}
}
áá¯á¶á·ááŒááºááŸá¯ááœáẠáá±á¬á·á¡áá
áºáá»á¬áž áá±á«áºáá¬áááº- _version
О _source
. áá±áá¯áá»á¡á¬ážááŒáá·áºá á¡á¬ážáá¯á¶ážáá±á¬á·áá»á¬ážááŒáá·áºá
áááºáááºá _
ááá¬ážáááºá¡ááŒá
áºáááºááŸááºáá¬ážáááºá
áá±á¬á· _version
á
á¬ááœááºá
á¬áááºážáá¬ážááŸááºážááá¯ááŒááááºá á¡áá±á¬ááºážááŒááºáá±á¬áá±á¬á·áááºááŸá¯ ááá¹ááá¬ážá¡áá¯ááºáá¯ááºáááºá¡ááœáẠáááºážááẠááá¯á¡ááºáá«áááºá á¥ááá¬á¡á¬ážááŒáá·áºá áá»áœááºá¯ááºááá¯á·ááẠáá¬ážááŸááºáž 1 áá«ááŸááá±á¬ á
á¬ááœááºá
á¬áááºážááᯠááŒá±á¬ááºážáá²ááá¯áá«áááºá áá»áœááºá¯ááºááá¯á·ááẠááŒá±á¬ááºážáá²áá¬ážáá±á¬ á
á¬ááœááºá
á¬áááºážááᯠáááºááœááºážááŒá®áž áááºážááẠáá¬ážááŸááºáž 1 áá«áá±á¬ á
á¬ááœááºá
á¬áááºážá áááºážááŒááºááŸá¯ááŒá
áºááŒá±á¬ááºáž ááœáŸááºááŒáá«áááºá á¡ááŒá¬ážáá°áá
áºáŠážáŠážá០áá¬ážááŸááºáž 1 áá«áá±á¬ á
á¬ááœááºá
á¬áááºážááᯠáááºážááŒááºááŒá®áž áá»áœááºá¯ááºááá¯á·áᶠáá±ážááá¯á·áá¬ážáá±á¬ á¡ááŒá±á¬ááºážá¡áá²áá»á¬ážááŸááá«áá ES ááẠáá»áœááºá¯ááºááá¯á·áááŒá±á¬ááºážáá²ááŸá¯áá»á¬ážááᯠáááºáá¶áááºááá¯ááºáá±á¬ááŒá±á¬áá·áºááŒá
áºáááºá áááºážáááºá
á¬ááœááºá
á¬áááºážááá¯áá¬ážááŸááºáž 2 ááŒáá·áºááááºážáááºážáá¬ážáááºá
áá±á¬á· _source
áá»áœááºá¯ááºááá¯á· ááœáŸááºážáá¬ážáá±á¬ á
á¬áááºážáá«ááŸááááºá ES ááẠááŸá¬ááœá±ááŸá¯áá¯ááºáááºážáá»á¬ážá¡ááœáẠá€áááºááá¯ážááᯠá¡áá¯á¶ážáááŒá¯áá±á¬ááŒá±á¬áá·áºááŒá
áºáááºá á¡ááœáŸááºážáá»á¬ážááᯠááŸá¬ááœá±ááẠá¡áá¯á¶ážááŒá¯áááºá áá±áá¬áá»áœá±áá¬áááºá ES ááẠáá»á¯á¶á·áá¬ážáá±á¬ á¡áááºážá¡ááŒá
áºá
á¬ááœááºá
á¬áááºážááᯠááááºážáááºážáá¬ážáááºá áá»áœááºá¯ááºááá¯á·ááẠá¡áá¯ááºáá®ááá¯áᬠááá¯á¡ááºááŒá®áž á¡áááºážá¡ááŒá
áºá
á¬ááœááºá
á¬áááºážáá
áºáá¯áá¯á¶ážááá¯ááºáá«áá á¡áááºážá¡ááŒá
áºááá¯ááŸá±á¬ááºááŸá¯ááᯠáá»áœááºá¯ááºááá¯á·ááááºááá¯ááºáááºá
áá»áœááºá¯ááºááá¯á·ááẠáááºáá±á¬ááºážá¡áá»ááºá¡áááºáá»á¬ážááᯠáááá¯á¡ááºáá«áá _source á á¡ááŒá±á¬ááºážá¡áá¬áá»á¬ážááá¯áᬠáááá¯ááºáááº-
curl -XGET "$ES_URL/blog/post/1/_source?pretty"
{
"title" : "ÐеÑелÑе кПÑÑÑа",
"content" : "<p>СЌеÑÐœÐ°Ñ ÐžÑÑПÑÐžÑ Ð¿ÑП кПÑÑÑ<p>",
"tags" : [ "кПÑÑÑа", "ÑЌеÑÐœÐ°Ñ ÐžÑÑПÑОÑ" ],
"published_at" : "2014-09-12T20:44:42+00:00"
}
áááºááẠá¡áá»áá¯á·áá±á¬á¡ááœááºáá»á¬ážááá¯áᬠááœá±ážáá»ááºááá¯ááºáááº-
# ОзвлеÑеЌ ÑПлÑкП пПле title
curl -XGET "$ES_URL/blog/post/1?_source=title&pretty"
{
"_index" : "blog",
"_type" : "post",
"_id" : "1",
"_version" : 1,
"found" : true,
"_source" : {
"title" : "ÐеÑелÑе кПÑÑÑа"
}
}
áá±á¬ááºááẠááá¯á·á áºá¡áááºážáááºááᯠááœáŸááºážááŒá®áž ááá¯ááá¯ááŸá¯ááºááœá±ážáá±á¬ áá±ážááœááºážáá»á¬ážááᯠáá¯ááºáá±á¬ááºááŒáá«á áá¯á·á
curl -XPUT "$ES_URL/blog/post/2" -d'
{
"title": "ÐеÑелÑе ÑеМкО",
"content": "<p>СЌеÑÐœÐ°Ñ ÐžÑÑПÑÐžÑ Ð¿ÑП ÑеМкПв<p>",
"tags": [
"ÑеМкО",
"ÑЌеÑÐœÐ°Ñ ÐžÑÑПÑОÑ"
],
"published_at": "2014-08-12T20:44:42+00:00"
}'
curl -XPUT "$ES_URL/blog/post/3" -d'
{
"title": "Ðак Ñ ÐŒÐµÐœÑ Ð¿ÐŸÑвОлÑÑ ÐºÐŸÑеМПк",
"content": "<p>ÐÑÑеÑазЎОÑаÑÑÐ°Ñ ÐžÑÑПÑÐžÑ Ð¿ÑП беЎМПгП кПÑеМка Ñ ÑлОÑÑ<p>",
"tags": [
"кПÑÑÑа"
],
"published_at": "2014-07-21T20:44:42+00:00"
}'
sorting
# МайЎеЌ пПÑлеЎМОй пПÑÑ Ð¿ÐŸ ЎаÑе пÑблОкаÑОО О ОзвлеÑеЌ Ð¿ÐŸÐ»Ñ title О published_at
curl -XGET "$ES_URL/blog/post/_search?pretty" -d'
{
"size": 1,
"_source": ["title", "published_at"],
"sort": [{"published_at": "desc"}]
}'
{
"took" : 8,
"timed_out" : false,
"_shards" : {
"total" : 5,
"successful" : 5,
"failed" : 0
},
"hits" : {
"total" : 3,
"max_score" : null,
"hits" : [ {
"_index" : "blog",
"_type" : "post",
"_id" : "1",
"_score" : null,
"_source" : {
"title" : "ÐеÑелÑе кПÑÑÑа",
"published_at" : "2014-09-12T20:44:42+00:00"
},
"sort" : [ 1410554682000 ]
} ]
}
}
áá»áœááºáá±á¬áºááá¯á· áá±á¬ááºáá¯á¶ážááá¯á·á
áºááᯠááœá±ážááá¯ááºáááºá size
áá¯ááºáá±ážáááá·áº á
á¬ááœááºá
á¬áááºážá¡áá±á¡ááœááºááᯠááá·áºáááºáá¬ážáááºá total
áá±á¬ááºážááá¯áá»ááºááŸáá·áºááá¯ááºáá®áá±á¬ á
á¯á
á¯áá±á«ááºážá
á¬ááœááºá
á¬áááºážá¡áá±á¡ááœááºááᯠááŒáááºá sort
á¡ááœááºááœáẠá
á®á
á¥áºáá±ážááá·áº ááááºážááŒáá·áº array áá«ááŸááááºá á¡á²áá«ááœá±á áááºá
áœá²ááᯠááááºážááŒáá·áºá¡ááŒá
ẠááŒá±á¬ááºážáá²áá²á·áááºá á¡áá»áá¯ážá¡á
á¬ážááœá²ááŒááºážááá¯ááºáᬠáá±á¬ááºáááºá¡áá»ááºá¡áááºáá»á¬ážááᯠááœáẠááŒáá·áºááŸá¯ááá¯ááºáá«áááºá
á á áºáá¯ááºááŸá¯áá»á¬ážááŸáá·áº áá±ážááŒááºážáá»ááºáá»á¬áž
áá¬ážááŸááºáž 2 ááŒá±á¬áá·áº ES ááẠá
á
áºáá¯ááºááŸá¯áá»á¬ážááŸáá·áº á
á¯á¶á
ááºážááŸá¯áá»á¬ážááŒá¬ážááœáẠááœá²ááŒá¬ážááŒááºážáááŸááá«á
query context ááẠ_score ááá¯áá¯ááºáá±ážááŒá®áž áááºááŸáºááá¯ááºááá·áºá¡ááœáẠá
á
áºáá¯ááºááá·áºá¡ááŒá±á¬ááºážá¡áá¬ááŸáá·áº ááœá²ááŒá¬ážáááºá _score á áá¬áá²ááá¯áᬠáá±á¬ááºááŸááŒáááºá
áááºá áœá²á¡ááá¯áẠá á áºáá¯ááºáá«á
áá±á¬ááºážááá¯áá»ááºááᯠáá»áœááºá¯ááºááá¯á· á¡áá¯á¶ážááŒá¯áá«áááºá
# пПлÑÑОЌ пПÑÑÑ, ПпÑблОкПваММÑе 1ПгП ÑеМÑÑбÑÑ ÐžÐ»Ðž пПзже
curl -XGET "$ES_URL/blog/post/_search?pretty" -d'
{
"filter": {
"range": {
"published_at": { "gte": "2014-09-01" }
}
}
}'
áááºáá»á¬ážááŒáá·áº á á áºáá¯ááºáá«á
áá»áœááºáá±á¬áºááá¯
# МайЎеЌ вÑе ЎПкÑЌеМÑÑ, в пПле tags кПÑПÑÑÑ
еÑÑÑ ÑÐ»ÐµÐŒÐµÐœÑ 'кПÑÑÑа'
curl -XGET "$ES_URL/blog/post/_search?pretty" -d'
{
"_source": [
"title",
"tags"
],
"filter": {
"term": {
"tags": "кПÑÑÑа"
}
}
}'
{
"took" : 9,
"timed_out" : false,
"_shards" : {
"total" : 5,
"successful" : 5,
"failed" : 0
},
"hits" : {
"total" : 2,
"max_score" : 1.0,
"hits" : [ {
"_index" : "blog",
"_type" : "post",
"_id" : "1",
"_score" : 1.0,
"_source" : {
"title" : "ÐеÑелÑе кПÑÑÑа",
"tags" : [ "кПÑÑÑа", "ÑЌеÑÐœÐ°Ñ ÐžÑÑПÑОÑ" ]
}
}, {
"_index" : "blog",
"_type" : "post",
"_id" : "3",
"_score" : 1.0,
"_source" : {
"title" : "Ðак Ñ ÐŒÐµÐœÑ Ð¿ÐŸÑвОлÑÑ ÐºÐŸÑеМПк",
"tags" : [ "кПÑÑÑа" ]
}
} ]
}
}
á á¬áá¬ážá¡ááŒáá·áºá¡á á¯á¶ ááŸá¬ááœá±ááŸá¯
áá»áœááºá¯ááºááá¯á·áá á¬ááœááºá á¬áááºážáá¯á¶ážáá¯ááœáẠá¡ááŒá±á¬ááºážá¡áá¬áááºáááºááœáẠá¡á±á¬ááºáá«ááá¯á·áá«áááºáááº-
<p>СЌеÑÐœÐ°Ñ ÐžÑÑПÑÐžÑ Ð¿ÑП кПÑÑÑ<p>
<p>СЌеÑÐœÐ°Ñ ÐžÑÑПÑÐžÑ Ð¿ÑП ÑеМкПв<p>
<p>ÐÑÑеÑазЎОÑаÑÑÐ°Ñ ÐžÑÑПÑÐžÑ Ð¿ÑП беЎМПгП кПÑеМка Ñ ÑлОÑÑ<p>
áá»áœááºáá±á¬áºááá¯
# source: false ПзМаÑаеÑ, ÑÑП Ме ÐœÑжМП ОзвлекаÑÑ _source МайЎеММÑÑ
ЎПкÑЌеМÑПв
curl -XGET "$ES_URL/blog/post/_search?pretty" -d'
{
"_source": false,
"query": {
"match": {
"content": "ОÑÑПÑОÑ"
}
}
}'
{
"took" : 13,
"timed_out" : false,
"_shards" : {
"total" : 5,
"successful" : 5,
"failed" : 0
},
"hits" : {
"total" : 3,
"max_score" : 0.11506981,
"hits" : [ {
"_index" : "blog",
"_type" : "post",
"_id" : "2",
"_score" : 0.11506981
}, {
"_index" : "blog",
"_type" : "post",
"_id" : "1",
"_score" : 0.11506981
}, {
"_index" : "blog",
"_type" : "post",
"_id" : "3",
"_score" : 0.095891505
} ]
}
}
ááá¯á·áá±á¬áºá áá»áœááºá¯ááºááá¯á·ááẠá¡ááŒá±á¬ááºážá¡áá¬á¡ááœááºááœáẠ"áá¬ááºáááºážáá»á¬áž" ááá¯ááŸá¬ááœá±áá«áá áá»áœááºá¯ááºááá¯á·ááẠáááºááá·áºá¡áá¬ááá¯áá»áŸ ááŸá¬áááœá±á·ááá¯ááºáá±á¬ááŒá±á¬áá·áºááŒá áºáááºá á¡ááœáŸááºážááœáẠáá°áááºážá áá¬ážáá¯á¶ážáá»á¬ážáᬠáá«áááºáááºá áááºážááá¯á·á áááºá ááºáá»á¬áž ááá«ááŸááá«á á¡áááºá¡ááœá±ážááŒáá·áº ááŸá¬ááœá±ááŸá¯ááŒá¯áá¯ááºáááºá¡ááœááºá ááœá²ááŒááºážá áááºááŒá¬áá°á¡á¬áž áááºááŒááºáááºáááºááŸááºááẠááá¯á¡ááºáááºá
áááºáᬠ_score
ááŒááœá²
áá±á·áá¬áá¯á¶ážáááºáá°áá»á¬áž
ááœá²ááŒááºážá
áááºááŒá¬áá°áá»á¬ážááœáẠáá
áºáá¯ááŒá
áºáááºá
á¡áá±á¬ááºááœáẠá¡áá±á¬áºááŒá¬áá²á·ááŒá®
á¡ááœáá·áºáá±á¬ááºážáá°ááŒáá«á
áá¯á·
# ОÑпПлÑзÑеЌ аМалОзаÑÐŸÑ standard
# ПбÑзаÑелÑМП ÐœÑжМП пеÑекПЎОÑПваÑÑ ÐœÐµ ASCII ÑОЌвПлÑ
curl -XGET "$ES_URL/_analyze?pretty&analyzer=standard&text=%D0%92%D0%B5%D1%81%D0%B5%D0%BB%D1%8B%D0%B5%20%D0%B8%D1%81%D1%82%D0%BE%D1%80%D0%B8%D0%B8%20%D0%BF%D1%80%D0%BE%20%D0%BA%D0%BE%D1%82%D1%8F%D1%82"
{
"tokens" : [ {
"token" : "веÑелÑе",
"start_offset" : 0,
"end_offset" : 7,
"type" : "<ALPHANUM>",
"position" : 0
}, {
"token" : "ОÑÑПÑОО",
"start_offset" : 8,
"end_offset" : 15,
"type" : "<ALPHANUM>",
"position" : 1
}, {
"token" : "пÑП",
"start_offset" : 16,
"end_offset" : 19,
"type" : "<ALPHANUM>",
"position" : 2
}, {
"token" : "кПÑÑÑ",
"start_offset" : 20,
"end_offset" : 25,
"type" : "<ALPHANUM>",
"position" : 3
} ]
}
# ОÑпПлÑзÑеЌ аМалОзаÑÐŸÑ russian
curl -XGET "$ES_URL/_analyze?pretty&analyzer=russian&text=%D0%92%D0%B5%D1%81%D0%B5%D0%BB%D1%8B%D0%B5%20%D0%B8%D1%81%D1%82%D0%BE%D1%80%D0%B8%D0%B8%20%D0%BF%D1%80%D0%BE%20%D0%BA%D0%BE%D1%82%D1%8F%D1%82"
{
"tokens" : [ {
"token" : "веÑел",
"start_offset" : 0,
"end_offset" : 7,
"type" : "<ALPHANUM>",
"position" : 0
}, {
"token" : "ОÑÑПÑ",
"start_offset" : 8,
"end_offset" : 15,
"type" : "<ALPHANUM>",
"position" : 1
}, {
"token" : "кПÑ",
"start_offset" : 20,
"end_offset" : 25,
"type" : "<ALPHANUM>",
"position" : 3
} ]
}
á á¶ááœá²ááŒááºážá áááºááŒá¬áá°ááẠá á¬ááŒá±á¬ááºážáá»á¬ážááᯠá¡ááœááºáá»á¬ážááœá²áᬠá¡áá¬á¡á¬ážáá¯á¶ážááᯠá¡áá±ážá á¬ážá¡ááŒá áºááá¯á· ááŒá±á¬ááºážááá¯ááºáááºá áá¯ááŸá¬ážáá¬áá¬ááœá²ááŒááºážá áááºááŒá¬áá°ááẠá¡áá±ážáááŒá®ážáá±á¬á áá¬ážáá¯á¶ážáá»á¬ážááᯠáááºááŸá¬ážáᬠá á¬áá¯á¶ážá¡áá±ážá¡ááŒá áºááá¯á· ááŒá±á¬ááºážáá²áᬠá áá¬ážáá¯á¶ážáá»á¬ážáá¡áááºážááᯠáá»ááºáá¬ážáá²á·áááºá
áá¯ááŸá¬ážááœá²ááŒááºážá áááºááŒá¬áá°á¡áá¯á¶ážááŒá¯ááá·áº Tokenizerá TokenFiltersá CharFilters ááá¯á·ááᯠááŒáá·áºááŒáá«á áá¯á·á
{
"filter": {
"russian_stop": {
"type": "stop",
"stopwords": "_russian_"
},
"russian_keywords": {
"type": "keyword_marker",
"keywords": []
},
"russian_stemmer": {
"type": "stemmer",
"language": "russian"
}
},
"analyzer": {
"russian": {
"tokenizer": "standard",
/* TokenFilters */
"filter": [
"lowercase",
"russian_stop",
"russian_keywords",
"russian_stemmer"
]
/* CharFilters ПÑÑÑÑÑÑвÑÑÑ */
}
}
}
html áááºáá»á¬ážááᯠááŒááºáá±á¬ááºááá·áº áá¯ááŸá¬ážá¡áá±á«áº á¡ááŒá±áá¶áá¬ážáá±á¬ áá»áœááºá¯ááºááá¯á·á ááœá²ááŒááºážá áááºááŒá¬ááŸá¯ááᯠáá±á¬áºááŒááŒáá«á áá¯á·á default ááá¯á·áá² áá±á«áºáá¡á±á¬áẠá€á¡áááºááŒáá·áº ááœá²ááŒááºážá áááºááŒá¬áá°á¡á¬áž áá°áááºážá¡ááá¯ááºáž á¡áá¯á¶ážááŒá¯áá«áááºá
{
"filter": {
"ru_stop": {
"type": "stop",
"stopwords": "_russian_"
},
"ru_stemmer": {
"type": "stemmer",
"language": "russian"
}
},
"analyzer": {
"default": {
/* ЎПбавлÑеЌ ÑЎалеМОе html ÑегПв */
"char_filter": ["html_strip"],
"tokenizer": "standard",
"filter": [
"lowercase",
"ru_stop",
"ru_stemmer"
]
}
}
}
ááááŠážá áœá¬á HTML áááºá¡á¬ážáá¯á¶ážááᯠá¡áááºážá¡ááŒá áºá á¬ááŒá±á¬ááºážá០áááºááŸá¬ážááá¯ááºáááºááŒá áºááŒá®ážá ááá¯á·áá±á¬áẠááá¯áááºáá±ážááá·áºá á¶ááŸá¯ááºážááẠáááºážááᯠááá¯áááºáá»á¬ážá¡ááŒá Ạááœá²ááœá¬ážáááºááŒá áºááŒá®ážá ááááºááá¯áááºáá»á¬ážááᯠá á¬áá¯á¶ážá¡áá±ážááá¯á· ááœáŸá±á·áááºá á¡áá±ážááá«áá±á¬ á áá¬ážáá¯á¶ážáá»á¬ážááᯠáááºááŸá¬ážááá¯ááºáááºááŒá áºááŒá®áž áá»ááºááŸááá±á¬ ááá¯áááºáá»á¬ážááẠá áá¬ážáá¯á¶ážáá¡áááºážá¡ááá¯ááºáž áá»ááºááŸááá±áááºááŒá áºáááºá
á¡ááœáŸááºážáá áºáá¯áááºáá®ážááŒááºážá
á¡áááºááœáẠáá»áœááºá¯ááºááá¯á·ááẠáá¯á¶áá±ááœá²ááŒááºážá áááºááŒá¬ááŸá¯á¡á¬áž áá±á¬áºááŒáá¬ážáá«áááºá áááºážááẠá á¬ááŒá±á¬ááºážá¡ááœááºáá»á¬ážá¡á¬ážáá¯á¶ážááœáẠáááºáá±á¬ááºáááºááŒá áºáááºá áá»áœááºá¯ááºááá¯á·áááá¯á·á áºááœáẠáááºáá»á¬ážáááºážáá»ááºážáá¬ážáá±á¬ááŒá±á¬áá·áº áááºáá»á¬ážááᯠááœá²ááŒááºážá áááºááŒá¬áá°á០áá¯ááºáá±á¬ááºáá±ážáááºááŒá áºáááºá áá¬ááŒá áºááá¯á·áá²ááá¯áá±á¬á· áá»áœááºá¯ááºááá¯á·ááẠáááºáá áºáá¯ááŸáá·áº á¡ááá¡áá»ááá¯ááºáá®áá±á¬ ááá¯á·á áºáá»á¬ážááᯠááŸá¬ááœá±áá±áááºá ááá¯á·áá±á¬áẠáááºá¡ááœááºá¡ááœáẠááœá²ááŒááºážá áááºááŒá¬ááŸá¯ááᯠááááºááẠááá¯á¡ááºáá«áááºá
áááºááœááºáááºááᯠááœá²ááŒááºážá áááºááŒá¬ááŸá¯ááᯠááááºáá¬ážááá·áº ááœá²ááŒááºážá áááºááŒá¬ááŸá¯ ááŸáá·áº ááŒá±áá¯á¶ááŒáá·áº á¡ááœáŸááºážááá±á¬á·á ááᯠáááºáá®ážááŒáá«á áá¯á·á
curl -XPOST "$ES_URL/blog2" -d'
{
"settings": {
"analysis": {
"filter": {
"ru_stop": {
"type": "stop",
"stopwords": "_russian_"
},
"ru_stemmer": {
"type": "stemmer",
"language": "russian"
}
},
"analyzer": {
"default": {
"char_filter": [
"html_strip"
],
"tokenizer": "standard",
"filter": [
"lowercase",
"ru_stop",
"ru_stemmer"
]
}
}
}
},
"mappings": {
"post": {
"properties": {
"content": {
"type": "string"
},
"published_at": {
"type": "date"
},
"tags": {
"type": "string",
"index": "not_analyzed"
},
"title": {
"type": "string"
}
}
}
}
}'
á€á¡ááœáŸááºáž (blog3) ááœáẠáá°áá®áá±á¬ ááá¯á·á Ạá áá¯ááᯠáá±á«ááºážááá·áºááŒáá«á áá¯á·á áá®ááŒá áºá ááºááᯠáá»ááºááŸááºáá¬ážááŸá¬ááá¯á·... áááºážááẠááá±á¬á·ááºá¡ááœáŸááºážááá¯á· á á¬ááœááºá á¬áááºážáá»á¬ážááá·áºááŒááºážááŸáá·áº áááºáá°áááºá
á áá¬ážá¡áá¯á¶ážá¡ááŸá¯ááºáž áá¶á·ááá¯ážááŸá¯ááŒáá·áº á á¬áá¬ážááŸá¬ááœá±ááŸá¯ á¡ááŒáá·áºá¡á á¯á¶
á¡ááŒá¬ážáá±á¬ááºážááá¯ááŸá¯á¡áá»áá¯ážá¡á á¬ážááᯠááŒáá·áºááŒáá«á áá¯á·á
# МайЎеЌ ЎПкÑЌеМÑÑ, в кПÑПÑÑÑ
вÑÑÑеÑаеÑÑÑ ÑлПвП 'ОÑÑПÑОО'
# query -> simple_query_string -> query ÑПЎеÑÐ¶ÐžÑ Ð¿ÐŸÐžÑкПвÑй запÑПÑ
# пПле title ÐžÐŒÐµÐµÑ Ð¿ÑОПÑОÑÐµÑ 3
# пПле tags ÐžÐŒÐµÐµÑ Ð¿ÑОПÑОÑÐµÑ 2
# пПле content ÐžÐŒÐµÐµÑ Ð¿ÑОПÑОÑÐµÑ 1
# пÑОПÑОÑÐµÑ ÐžÑпПлÑзÑеÑÑÑ Ð¿ÑО ÑаМжОÑПваМОО ÑезÑлÑÑаÑПв
curl -XPOST "$ES_URL/blog2/post/_search?pretty" -d'
{
"query": {
"simple_query_string": {
"query": "ОÑÑПÑОО",
"fields": [
"title^3",
"tags^2",
"content"
]
}
}
}'
áá¬ááŒá áºááá¯á·áá²ááá¯áá±á¬á· áá»áœááºá¯ááºááá¯á·ááẠáá¯ááŸá¬ážáá¬áá¬ááᯠá¡ááŒá±áá¶ááá·áº ááœá²ááŒááºážá áááºááŒá¬ááŸá¯ááŒáá·áº ááœá²ááŒááºážá áááºááŒá¬ááŸá¯áá áºáá¯ááᯠá¡áá¯á¶ážááŒá¯áá±áááºá ááá¯á·áá±á¬áẠá€áá±á¬ááºážááá¯áá»ááºááœáẠ'áááá¯ááºáž' áá°áá±á¬ á áá¬ážáá¯á¶ážáᬠáá«ááŸááá±á¬áºáááºážá á€áá±á¬ááºážááá¯áá»ááºááœáẠá á¬ááœááºá á¬áááºážáá»á¬ážá¡á¬ážáá¯á¶ážááᯠááŒááºáá±ážáá«áááºá
áá±á¬ááºážááá¯áá»ááºááœáẠá¡áá°ážáá¬ááºáá±á¬ááºáá»á¬áž áá«áááºááá¯ááºáááºá á¥ááá¬-
""fried eggs" +(eggplant | potato) -frittata"
á¡áá¬ážá¡ááá¯áá±á¬ááºážááá¯áááº-
+ signifies AND operation
| signifies OR operation
- negates a single token
" wraps a number of tokens to signify a phrase for searching
* at the end of a term signifies a prefix query
( and ) signify precedence
~N after a word signifies edit distance (fuzziness)
~N after a phrase signifies slop amount
# МайЎеЌ ЎПкÑЌеМÑÑ Ð±ÐµÐ· ÑлПва 'ÑеМкО'
curl -XPOST "$ES_URL/blog2/post/_search?pretty" -d'
{
"query": {
"simple_query_string": {
"query": "-ÑеМкО",
"fields": [
"title^3",
"tags^2",
"content"
]
}
}
}'
# пПлÑÑОЌ 2 пПÑÑа пÑП кПÑОкПв
ááá¯ážáá¬áž
Elasctic.co á¡ááœáŸááºáž áááºážááœáŸáẠáá±á«áá¬á ustanovka á á¬ááœááºá á¬áááºáž ááŒááºááŸááºááŒááºážá á¡ááœáŸááºážá á áºáááºáá±áž áá±á¬ááºážááá¯áá»ááºáá»á¬ážá á¬áááºáž
PS
á¡áááºá áááºááẠá¡áá¬ážáá° áá±á¬ááºážáá«ážáá»á¬áž-áááºáááºážá á¬áá»á¬ážááᯠá áááºáááºá á¬ážáá«áá áá±á¬ááºážáá«ážá¡áá áºá¡ááœáẠá¡ááŒá¶á¥á¬ááºáá»á¬áž ááá¯á·ááá¯áẠáá°ážáá±á«ááºážáá±á¬ááºááœááºááŸá¯á¡ááœáẠá¡ááá¯ááŒá¯áá»ááºáá»á¬ážááŸááá«áá ááá¯á·áá±á¬áẠááá¯ááºáá±ážááá¯ááºáᬠáááºáá±á·áá»áº ááá¯á·ááá¯áẠá¡á®ážáá±ážááºááŒáá·áº áááºáá±á·áá»áºááᯠáááºáá¶áááŸáááá·áºá¡ááœáẠáááºážááŒá±á¬ááºáááá«áááºá [á¡á®ážáá±ážááºááá¯áá¬ááœááºáá¬ážáááº].
source: www.habr.com