ΠΠ»Π°ΡΡΠΈΡΡΠ΅Π°ΡΡΡ
ΡΠ΅ ΠΏΡΠ΅ΡΡΠ°ΠΆΠΈΠ²Π°Ρ ΡΠ° ΡΡΠΎΠ½ ΡΠ΅ΡΡ Π°ΠΏΠΈ, ΠΊΠΎΡΠΈ ΠΊΠΎΡΠΈΡΡΠΈ ΠΡΡΠ΅Π½Π΅ ΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° ΠΠ°Π²ΠΈ. ΠΠΏΠΈΡ ΡΠ²ΠΈΡ
ΠΏΡΠ΅Π΄Π½ΠΎΡΡΠΈ ΠΎΠ²ΠΎΠ³ ΠΌΠΎΡΠΎΡΠ° Π΄ΠΎΡΡΡΠΏΠ°Π½ ΡΠ΅ Π½Π°
Π‘Π»ΠΈΡΠ½ΠΈ ΠΌΠΎΡΠΎΡΠΈ ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠ΅ Π·Π° ΡΠ»ΠΎΠΆΠ΅Π½Π° ΠΏΡΠ΅ΡΡΠ°ΠΆΠΈΠ²Π°ΡΠ° Ρ Π±Π°Π·ΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½Π°ΡΠ°. ΠΠ° ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠ΅ΡΡΠ°ΠΆΠΈΠ²Π°ΡΠ΅ ΡΠ·ΠΈΠΌΠ°ΡΡΡΠΈ Ρ ΠΎΠ±Π·ΠΈΡ ΠΌΠΎΡΡΠΎΠ»ΠΎΠ³ΠΈΡΡ ΡΠ΅Π·ΠΈΠΊΠ° ΠΈΠ»ΠΈ ΠΏΡΠ΅ΡΡΠ°Π³Ρ ΠΏΠΎ Π³Π΅ΠΎΠ³ΡΠ°ΡΡΠΊΠΈΠΌ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°ΠΌΠ°.
Π£ ΠΎΠ²ΠΎΠΌ ΡΠ»Π°Π½ΠΊΡ ΡΡ Π³ΠΎΠ²ΠΎΡΠΈΡΠΈ ΠΎ ΠΎΡΠ½ΠΎΠ²Π°ΠΌΠ° ΠΠ‘-Π° Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠ°ΡΠ° Π±Π»ΠΎΠ³ ΠΏΠΎΡΡΠΎΠ²Π°. ΠΠΎΠΊΠ°Π·Π°ΡΡ Π²Π°ΠΌ ΠΊΠ°ΠΊΠΎ Π΄Π° ΡΠΈΠ»ΡΡΠΈΡΠ°ΡΠ΅, ΡΠΎΡΡΠΈΡΠ°ΡΠ΅ ΠΈ ΠΏΡΠ΅ΡΡΠ°ΠΆΡΡΠ΅ΡΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ΅.
ΠΠ° Π½Π΅ Π±ΠΈΡ
Π·Π°Π²ΠΈΡΠΈΠΎ ΠΎΠ΄ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠ³ ΡΠΈΡΡΠ΅ΠΌΠ°, ΡΠ²Π΅ Π·Π°Ρ
ΡΠ΅Π²Π΅ ΡΡ ΡΠΏΡΡΠΈΡΠΈ ΠΠ‘-Ρ ΠΊΠΎΡΠΈΡΡΠ΅ΡΠΈ Π¦Π£Π Π. ΠΠΎΡΡΠΎΡΠΈ ΠΈ Π΄ΠΎΠ΄Π°ΡΠ°ΠΊ Π·Π° ΠΠΎΠΎΠ³Π»Π΅ Π¦Ρ
ΡΠΎΠΌΠ΅ ΡΠ·Π²
Π’Π΅ΠΊΡΡ ΡΠ°Π΄ΡΠΆΠΈ Π²Π΅Π·Π΅ ΠΊΠ° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠΈ ΠΈ Π΄ΡΡΠ³ΠΈΠΌ ΠΈΠ·Π²ΠΎΡΠΈΠΌΠ°. ΠΠ° ΠΊΡΠ°ΡΡ ΡΠ΅ Π½Π°Π»Π°Π·Π΅ Π»ΠΈΠ½ΠΊΠΎΠ²ΠΈ Π·Π° Π±ΡΠ·ΠΈ ΠΏΡΠΈΡΡΡΠΏ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠΈ. ΠΠ΅ΡΠΈΠ½ΠΈΡΠΈΡΠ΅ Π½Π΅ΠΏΠΎΠ·Π½Π°ΡΠΈΡ
ΠΏΠΎΡΠΌΠΎΠ²Π° ΠΌΠΎΠ³Ρ ΡΠ΅ Π½Π°ΡΠΈ Ρ
ΠΠ½ΡΡΠ°Π»ΠΈΡΠ°ΡΠ΅ ΠΠ‘
ΠΠ° Π±ΠΈΡΠΌΠΎ ΡΠΎ ΡΡΠ°Π΄ΠΈΠ»ΠΈ, ΠΏΡΠ²ΠΎ Π½Π°ΠΌ ΡΠ΅ ΠΏΠΎΡΡΠ΅Π±Π½Π° ΠΠ°Π²Π°. ΠΠ΅Π²Π΅Π»ΠΎΠΏΠ΅ΡΡ
ΠΠ‘ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΡΠ° ΡΠ΅ Π΄ΠΎΡΡΡΠΏΠ½Π° Π½Π° 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"
}
ΠΠ½Π΄Π΅ΠΊΡΠΈΡΠ°ΡΠ΅
Π₯Π°ΡΠ΄Π΅ Π΄Π° Π΄ΠΎΠ΄Π°ΠΌΠΎ ΠΏΠΎΡΡ Ρ ΠΠ‘:
# ΠΠΎΠ±Π°Π²ΠΈΠΌ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ 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
}
ΠΠ‘ Π°ΡΡΠΎΠΌΠ°ΡΡΠΊΠΈ ΠΊΡΠ΅ΠΈΡΠ°Π½
# ΠΠΎΠ»ΡΡΠΈΠΌ 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"
}
}
}
}
}
}
ΠΡΠ΅Π΄ΠΈ Π½Π°ΠΏΠΎΠΌΠ΅Π½ΡΡΠΈ Π΄Π° ΠΠ‘ Π½Π΅ ΠΏΡΠ°Π²ΠΈ ΡΠ°Π·Π»ΠΈΠΊΡ ΠΈΠ·ΠΌΠ΅ΡΡ ΡΠ΅Π΄Π½Π΅ Π²ΡΠ΅Π΄Π½ΠΎΡΡΠΈ ΠΈ Π½ΠΈΠ·Π° Π²ΡΠ΅Π΄Π½ΠΎΡΡΠΈ. ΠΠ° ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΡΠ΅ Π½Π°ΡΠ»ΠΎΠ²Π° ΡΠ΅Π΄Π½ΠΎΡΡΠ°Π²Π½ΠΎ ΡΠ°Π΄ΡΠΆΠΈ Π½Π°ΡΠ»ΠΎΠ², Π° ΠΏΠΎΡΠ΅ ΠΎΠ·Π½Π°ΠΊΠ° ΡΠ°Π΄ΡΠΆΠΈ Π½ΠΈΠ· ΡΡΡΠΈΠ½Π³ΠΎΠ²Π°, ΠΈΠ°ΠΊΠΎ ΡΡ ΠΎΠ½ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ΅Π½ΠΈ Π½Π° ΠΈΡΡΠΈ Π½Π°ΡΠΈΠ½ Ρ ΠΌΠ°ΠΏΠΈΡΠ°ΡΡ.
ΠΠ°ΡΠ½ΠΈΡΠ΅ ΡΠ΅ΠΌΠΎ Π²ΠΈΡΠ΅ ΠΏΡΠΈΡΠ°ΡΠΈ ΠΎ ΠΌΠ°ΠΏΠΈΡΠ°ΡΡ.
zahtevi
ΠΡΠ΅ΡΠ·ΠΈΠΌΠ°ΡΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° ΠΏΠΎ ΡΠ΅Π³ΠΎΠ²ΠΎΠΌ ΠΠ-Ρ:
# ΠΈΠ·Π²Π»Π΅ΡΠ΅ΠΌ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ Ρ 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 ΠΈ ΠΏΠΎΠ΄Π½Π΅ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅ ΠΏΡΠ΅ Π½Π°Ρ, ΠΎΠ½Π΄Π° ΠΠ‘ Π½Π΅ΡΠ΅ ΠΏΡΠΈΡ
Π²Π°ΡΠΈΡΠΈ Π½Π°ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅, ΡΠ΅Ρ ΠΎΠ½ ΡΡΠ²Π° Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ ΡΠ° Π²Π΅ΡΠ·ΠΈΡΠΎΠΌ 2.
ΠΡΡΡ _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
Ρ ΠΈΠ·Π»Π°Π·Ρ ΡΠ°Π΄ΡΠΆΠΈ Π½ΠΈΠ· ΡΠ΅Π»ΠΈΡ
Π±ΡΠΎΡΠ΅Π²Π° ΠΏΠΎ ΠΊΠΎΡΠΈΠΌΠ° ΡΠ΅ Π²ΡΡΠΈ ΡΠΎΡΡΠΈΡΠ°ΡΠ΅. ΠΠ½Π΅. Π΄Π°ΡΡΠΌ ΡΠ΅ ΠΏΡΠ΅ΡΠ²ΠΎΡΠ΅Π½ Ρ ΡΠ΅ΠΎ Π±ΡΠΎΡ. ΠΠΈΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡΠ° ΠΎ ΡΠΎΡΡΠΈΡΠ°ΡΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΠ½Π°ΡΠΈ Ρ
Π€ΠΈΠ»ΡΠ΅ΡΠΈ ΠΈ ΡΠΏΠΈΡΠΈ
ΠΠ‘ ΠΎΠ΄ Π²Π΅ΡΠ·ΠΈΡΠ΅ 2 Π½Π΅ ΠΏΡΠ°Π²ΠΈ ΡΠ°Π·Π»ΠΈΠΊΡ ΠΈΠ·ΠΌΠ΅ΡΡ ΡΠΈΠ»ΡΠ΅ΡΠ° ΠΈ ΡΠΏΠΈΡΠ°
ΠΠΎΠ½ΡΠ΅ΠΊΡΡ ΡΠΏΠΈΡΠ° ΡΠ΅ ΡΠ°Π·Π»ΠΈΠΊΡΡΠ΅ ΠΎΠ΄ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΡΠΈΠ»ΡΠ΅ΡΠ° ΠΏΠΎ ΡΠΎΠΌΠ΅ ΡΡΠΎ ΡΠΏΠΈΡ Π³Π΅Π½Π΅ΡΠΈΡΠ΅ _ΡΡΠΎΡΠ΅ ΠΈ Π½ΠΈΡΠ΅ ΠΊΠ΅ΡΠΈΡΠ°Π½. ΠΠ°ΡΠ½ΠΈΡΠ΅ ΡΡ Π²Π°ΠΌ ΠΏΠΎΠΊΠ°Π·Π°ΡΠΈ ΡΡΠ° ΡΠ΅ _ΡΡΠΎΡΠ΅.
Π€ΠΈΠ»ΡΡΠΈΡΠ°ΡΡΠ΅ ΠΏΠΎ Π΄Π°ΡΡΠΌΡ
ΠΠΎΡΠΈΡΡΠΈΠΌΠΎ Π·Π°Ρ
ΡΠ΅Π²
# ΠΏΠΎΠ»ΡΡΠΈΠΌ ΠΏΠΎΡΡΡ, ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½ΡΠ΅ 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
} ]
}
Π‘ΡΠ°Π½Π΄Π°ΡΠ΄Π½ΠΈ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡ ΡΠ΅ ΠΏΠΎΠ΄Π΅Π»ΠΈΠΎ ΡΡΡΠΈΠ½Π³ ΠΏΠΎ ΡΠ°Π·ΠΌΠ°ΡΠΈΠΌΠ° ΠΈ ΠΊΠΎΠ½Π²Π΅ΡΡΠΎΠ²Π°ΠΎ ΡΠ²Π΅ Ρ ΠΌΠ°Π»Π° ΡΠ»ΠΎΠ²Π°, ΡΡΡΠΊΠΈ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡ ΡΠ΅ ΡΠΊΠ»ΠΎΠ½ΠΈΠΎ Π½Π΅Π²Π°ΠΆΠ½Π΅ ΡΠ΅ΡΠΈ, ΠΊΠΎΠ½Π²Π΅ΡΡΠΎΠ²Π°ΠΎ Π³Π° Ρ ΠΌΠ°Π»Π° ΡΠ»ΠΎΠ²Π° ΠΈ ΠΎΡΡΠ°Π²ΠΈΠΎ ΠΊΠΎΡΠ΅Π½ ΡΠ΅ΡΠΈ.
Π₯Π°ΡΠ΄Π΅ Π΄Π° Π²ΠΈΠ΄ΠΈΠΌΠΎ ΠΊΠΎΡΠ΅ Π’ΠΎΠΊΠ΅Π½ΠΈΠ·Π΅Ρ, Π’ΠΎΠΊΠ΅Π½Π€ΠΈΠ»ΡΠ΅ΡΡ, Π¦Ρ Π°ΡΠ€ΠΈΠ»ΡΠ΅ΡΡ ΠΊΠΎΡΠΈΡΡΠΈ ΡΡΡΠΊΠΈ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡ:
{
"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 ΠΎΡΡΡΡΡΡΠ²ΡΡΡ */
}
}
}
Π₯Π°ΡΠ΄Π΅ Π΄Π° ΠΎΠΏΠΈΡΠ΅ΠΌΠΎ Π½Π°Ρ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡ Π·Π°ΡΠ½ΠΎΠ²Π°Π½ Π½Π° ΡΡΡΠΊΠΎΠΌ, ΠΊΠΎΡΠΈ ΡΠ΅ ΠΈΠ·ΡΠ΅Π·Π°ΡΠΈ Ρ ΡΠΌΠ» ΠΎΠ·Π½Π°ΠΊΠ΅. ΠΠ°Π·ΠΎΠ²ΠΈΠΌΠΎ ΡΠΎ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π½ΠΈΠΌ, ΡΠ΅Ρ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡ ΡΠ° ΠΎΠ²ΠΈΠΌ ΠΈΠΌΠ΅Π½ΠΎΠΌ ΡΠ΅ ΡΠ΅ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π½ΠΎ ΠΊΠΎΡΠΈΡΡΠΈΡΠΈ.
{
"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"
]
}
}
}
ΠΡΠ²ΠΎ, ΡΠ²Π΅ Π₯Π’ΠΠ ΠΎΠ·Π½Π°ΠΊΠ΅ ΡΠ΅ Π±ΠΈΡΠΈ ΡΠΊΠ»ΠΎΡΠ΅Π½Π΅ ΠΈΠ· ΠΈΠ·Π²ΠΎΡΠ½ΠΎΠ³ Π½ΠΈΠ·Π°, Π·Π°ΡΠΈΠΌ ΡΠ΅ Π³Π° ΡΡΠ°Π½Π΄Π°ΡΠ΄ Π·Π° ΡΠΎΠΊΠ΅Π½ΠΈΠ·Π΅Ρ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΠΈ Π½Π° ΡΠΎΠΊΠ΅Π½Π΅, ΡΠ΅Π·ΡΠ»ΡΡΡΡΡΠΈ ΡΠΎΠΊΠ΅Π½ΠΈ ΡΠ΅ ΡΠ΅ ΠΏΡΠ΅ΠΌΠ΅ΡΡΠΈΡΠΈ Π½Π° ΠΌΠ°Π»Π° ΡΠ»ΠΎΠ²Π°, Π±Π΅Π·Π½Π°ΡΠ°ΡΠ½Π΅ ΡΠ΅ΡΠΈ ΡΠ΅ Π±ΠΈΡΠΈ ΡΠΊΠ»ΠΎΡΠ΅Π½Π΅, Π° ΠΏΡΠ΅ΠΎΡΡΠ°Π»ΠΈ ΡΠΎΠΊΠ΅Π½ΠΈ ΡΠ΅ ΠΎΡΡΠ°ΡΠΈ ΠΎΡΠ½ΠΎΠ²Π° ΡΠ΅ΡΠΈ.
ΠΡΠ΅ΠΈΡΠ°ΡΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΠ°
ΠΠ·Π½Π°Π΄ ΡΠΌΠΎ ΠΎΠΏΠΈΡΠ°Π»ΠΈ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π½ΠΈ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡ. ΠΡΠΈΠΌΠ΅ΡΠΈΠ²Π°ΡΠ΅ ΡΠ΅ Π½Π° ΡΠ²Π° ΠΏΠΎΡΠ° ΡΡΡΠΈΠ½Π³ΠΎΠ²Π°. ΠΠ°Ρ ΠΏΠΎΡΡ ΡΠ°Π΄ΡΠΆΠΈ Π½ΠΈΠ· ΠΎΠ·Π½Π°ΠΊΠ°, ΡΠ°ΠΊΠΎ Π΄Π° ΡΠ΅ ΠΈ ΡΠ°Π³ΠΎΠ²ΠΈ Π±ΠΈΡΠΈ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈ ΠΎΠ΄ ΡΡΡΠ°Π½Π΅ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠ°. ΠΠ΅Ρ Π’ΡΠ°ΠΆΠΈΠΌΠΎ ΠΏΠΎΡΡΠΎΠ²Π΅ ΠΏΠΎ ΡΠ°ΡΠ½ΠΎΠΌ ΠΏΠΎΠ΄ΡΠ΄Π°ΡΠ°ΡΡ ΡΠ° ΠΎΠ·Π½Π°ΠΊΠΎΠΌ, Π° Π·Π°ΡΠΈΠΌ ΠΌΠΎΡΠ°ΠΌΠΎ Π΄Π° ΠΎΠ½Π΅ΠΌΠΎΠ³ΡΡΠΈΠΌΠΎ Π°Π½Π°Π»ΠΈΠ·Ρ Π·Π° ΠΏΠΎΡΠ΅ Π·Π° ΠΎΠ·Π½Π°ΠΊΠ΅.
Π₯Π°ΡΠ΄Π΅ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΠΌΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠ½ΠΈ Π±Π»ΠΎΠ³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 ΠΏΠΎΡΡΠ° Ρ ΠΎΠ²Π°Ρ ΠΈΠ½Π΄Π΅ΠΊΡ (Π±Π»ΠΎΠ³2). ΠΠ·ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΎΠ²Π°Ρ ΠΏΡΠΎΡΠ΅Ρ ΡΠ΅Ρ... ΡΠ»ΠΈΡΠ½ΠΎ ΡΠ΅ Π΄ΠΎΠ΄Π°Π²Π°ΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½Π°ΡΠ° Ρ ΠΈΠ½Π΄Π΅ΠΊΡ Π±Π»ΠΎΠ³Π°.
ΠΡΠ΅ΡΡΠ°ΠΆΠΈΠ²Π°ΡΠ΅ ΡΠ΅Π»ΠΎΠ³ ΡΠ΅ΠΊΡΡΠ° ΡΠ° ΠΏΠΎΠ΄ΡΡΠΊΠΎΠΌ Π·Π° ΠΈΠ·ΡΠ°Π·Π΅
Π₯Π°ΡΠ΄Π΅ Π΄Π° ΠΏΠΎΠ³Π»Π΅Π΄Π°ΠΌΠΎ Π΄ΡΡΠ³Ρ Π²ΡΡΡΡ Π·Π°Ρ ΡΠ΅Π²Π°:
# Π½Π°ΠΉΠ΄Π΅ΠΌ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ, Π² ΠΊΠΎΡΠΎΡΡΡ
Π²ΡΡΡΠ΅ΡΠ°Π΅ΡΡΡ ΡΠ»ΠΎΠ²ΠΎ 'ΠΈΡΡΠΎΡΠΈΠΈ'
# 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 ΠΏΠΎΡΡΠ° ΠΏΡΠΎ ΠΊΠΎΡΠΈΠΊΠΎΠ²
ΡΠ΅ΡΠ΅ΡΠ΅Π½ΡΠ΅
ΠΠ»Π°ΡΡΡΠΈΡ.ΡΠΎ ΠΡΠ΅ΠΏΠΎΡΡΠΊΠ° Π²ΠΎΠ΄ΠΈΡΠΈ ΠΠ»ΠΎΡΠ°Ρ ΠΠ½ΡΡΠ°Π»Π°ΡΠΈΡΠ° ΠΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΈΡΠ° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΠΌΠ° ΠΠ½Π΄Π΅ΠΊ ΠΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Ρ Π‘ΠΏΠΈΡΠ°ΠΊ Π·Π°Ρ ΡΠ΅Π²Π°
PS
ΠΠΊΠΎ ΡΡΠ΅ Π·Π°ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠ²Π°Π½ΠΈ Π·Π° ΡΠ»ΠΈΡΠ½Π΅ ΡΠ»Π°Π½ΠΊΠ΅-Π»Π΅ΠΊΡΠΈΡΠ΅, ΠΈΠΌΠ°ΡΠ΅ ΠΈΠ΄Π΅ΡΠ΅ Π·Π° Π½ΠΎΠ²Π΅ ΡΠ»Π°Π½ΠΊΠ΅, ΠΈΠ»ΠΈ ΠΈΠΌΠ°ΡΠ΅ ΠΏΡΠ΅Π΄Π»ΠΎΠ³Π΅ Π·Π° ΡΠ°ΡΠ°Π΄ΡΡ, Π±ΠΈΡΠ΅ ΠΌΠΈ Π΄ΡΠ°Π³ΠΎ Π΄Π° Π΄ΠΎΠ±ΠΈΡΠ΅ΠΌ ΠΏΠΎΡΡΠΊΡ Ρ Π»ΠΈΡΠ½ΠΎΡ ΠΏΠΎΡΡΡΠΈ ΠΈΠ»ΠΈ Π½Π° ΠΌΠ΅ΡΠ» [Π΅ΠΌΠ°ΠΈΠ» Π·Π°ΡΡΠΈΡΠ΅Π½].
ΠΠ·Π²ΠΎΡ: Π²Π²Π².Ρ Π°Π±Ρ.ΡΠΎΠΌ