Elasticsearch ααΊααΆαααΆαααΈααααααααααΆαα½α json rest api αααααααΎ Lucene αα·ααααααααΆ Java α ααΆααα·αααααΆα’αααΈαα»ααααααααα·ααΆααα’αααααααΆαααΈααααααΊα’αΆα
ααααΆααα
αααΆαααΈαααααααααααΆαααααααΌαααΆαααααΎαααααΆααααΆαααααααααααα»αααααΆααα αααα»αααΌαααααΆααα·ααααααα―αααΆαα ααΆα§ααΆα ααα ααΆααααααααααααα·αααΌαααΈαααΈααα·ααααΆααααΆααΆ α¬ααααααααααααΌα’αααααααΌαα·ααΆαααααα
αα αααα»αα’αααααααααααα»αααΉααα·ααΆαα’αααΈααΌαααααΆαααααΉααα ES αααααααΎα§ααΆα αααααααΆαααααΎαα·αα·αααααααααΆααααα»αα αααα»αααΉααααα αΆαα’αααααΈαααααααα αααααα αα·ααααααααα―αααΆαα
ααΎααααΈαα»αα±ααααΉαααα’ααααΎααααααααααααα·ααααα·ααΆα αααα»αααΉαααααΎααααΎααΆααα’αααα
ES αααααααΎ CURL α ααΆααααΆααααααα·ααΈαααα½ααααααΆαα google chrome αααα α
ααΆ
α’αααααααΆααααααααΆαααα
ααΆααα―αααΆα αα·ααααααααααααααα αα
α
α»ααααα
ααααΆααααααααΆαααααααΆααααΆαα
αΌαααααΎα―αααΆααα ααα αα·αααααααααΆαααααααα·αααααΆααααααΆααα’αΆα
ααααΆααα
αααα»α
ααΆαααα‘αΎα ES
ααΎααααΈααααΎααΌα
αααααααΌαααΎαααααΌαααΆα Java α α’αααα’αα·αααααα
ααΆαα
ααα
αΆα 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 αα·ααααα
αααααΆαααααααααα½α αα·ααααααα’αΆααααα α§ααΆα ααα ααΆαα
αααααΎαααααΆααααααΆαα
αααααΎα α αΎαααΆαααααΆαααΆαα’αΆααααααααα’αααα αααααΈααΆαα½αααΆααααΌαααΆαααααΆαααΆαααααααΌα
ααααΆαααα»αααΆαααΌαααΆααααααα
ααΎαααΉααα·ααΆαααααααα’αααΈααΆαααααΎαααααΈαα
ααααααααα
ααααΎ
ααΆαααΆαααα―αααΆααααααααααααΆααααααααΆα
# ΠΈΠ·Π²Π»Π΅ΡΠ΅ΠΌ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ Ρ 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"
}'
αααααα
# Π½Π°ΠΉΠ΄Π΅ΠΌ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΏΠΎΡΡ ΠΏΠΎ Π΄Π°ΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΈ ΠΈΠ·Π²Π»Π΅ΡΠ΅ΠΌ ΠΏΠΎΠ»Ρ 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
αα
αααα»αααααααααΆαα’αΆααααα
ααα½αααααααααΆαααααααααααΌαααΆαα’αα»ααααα ααΆαααααα ααΆαααα·α
ααααααααΌαααΆαααααααααα
ααΆα
ααα½ααααα ααααααΆαααααααα’αααΈααΆαααααααα’αΆα
ααααΆααα
αααα»α
ααααα αα·ααααα½α
ES α
αΆααααΆααααΈαααα 2 αα·ααααα
αααααΆαααααα αα·ααααα½α αααα»ααα
αα·α
ααα·αααααα½ααα»αααΈααα·ααααααα ααααααα½ααααααΎα _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
αααα αΆα
α’ααααα·ααΆα
α’ααααα·ααΆαααΆααα½αα
ES ααΆααα½αα
ααα½α
αααααΆααααααααααα
# ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡ 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, CharFilter ααΆαααα’ααααα·ααΆααα»αααααΈααααΎα
{
"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 α α αΌαα α ααΆααΆααααΆαααΎαααααα α§ααααααα·ααΆααααααΆαααααααααααΉαααααΌαααΆαααααΎααΆαααααΆαααΎαα
{
"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 ααΆααα’ααααΉαααααΌαααΆαααα ααααΈααααα’ααααααααα αααααΆαααααααααααΆααα·αα·ααααααααΆααΉααααααααΆαα ααΆαα·αα·ααααααααΆ αα·αα·ααααααααΆααααααααΉαααααΆααααΈαα α’ααααααΌα ααΆααααα·αααααΆααααΉαααααΌαααΆαααα αα α αΎααα·αα·ααααααααΆααααα αααααΉααα ααααΆααΎαααααΆαααα
ααΆααααααΎαααααααααα
ααΆαααΎααΎαααΆααα·αααααΆα’αααΈα§ααααααα·ααΆαααααΆαααΎαα ααΆααΉαα’αα»ααααα ααααααΆαααααα’ααααααΆααα’ααα αααααΆαααααααΎαααΆαα’αΆααααααααΆα ααΌα ααααααααΆαααααΉαααααΌαααΆαααααΎαααΆααααα’ααααα·ααΆααααααα αααααΆααα ααΎααααα»ααααααααααΆααααααΆααααααααΌαααααα·αααααΆαααα ααΉαααααΆα αααααΆααααααΎαααααΌααα·αααΆααα·ααΆααααααΆααααΆαααααΆαα
ααααααααΎααα·αα·ααααααααα2 ααΆαα½αα’ααααα·ααΆα αα·αααΌααααααΈ αααααΆααα·ααΆαααααΆαααααΆαααααΌαααΆααα·αα
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"
}
}
}
}
}'
ααααααααα 3 αααααΆαααΌα ααααΆαα αα·αα·ααααααα (blog2)α αααα»αααΉααα»αα ααααααΎαααΆαααα ααααα... ααΆααααααααΉαααΆαααααααα―αααΆααα αα·αα·αααααααα»αα
ααΆααααααααα’αααααααααααααΆαα½αααΉαααΆαααΆαααααααααα
ααΌααααα‘ααααΎαααααΎααααααααααααααα
# Π½Π°ΠΉΠ΄Π΅ΠΌ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ, Π² ΠΊΠΎΡΠΎΡΡΡ
Π²ΡΡΡΠ΅ΡΠ°Π΅ΡΡΡ ΡΠ»ΠΎΠ²ΠΎ 'ΠΈΡΡΠΎΡΠΈΠΈ'
# 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 α―αααΆαααα αβαααα»βααααβα αααααΆαα»αααα ααΆαααααα ααΆααααα αα―αααΆα ααααα·ααααα·ααΆαααααααααα αααααΈααααααΎ
PS
ααααα·αααΎα’αααα αΆααα’αΆααααααααΎα’ααααα-αααααααααααααααΆ ααΆααααα·ααααααΆααα’αααααααααΈ α¬ααΆαααααΎαααααΆαααα·α αα αα ααααα·ααααα·ααΆα ααααααα»αααΉαααΈαααΆααααα»αααΆαααα½αααΆααααα»αααΆαααααΆαααααα½α α¬ααΆαα’ααΈαααα [α’ααΈαααααΆαααΆα].
ααααα: www.habr.com