Elasticsearch ืืื ืึท ืืืื ืืึธืืึธืจ ืืื json rest api, ื ืืฆื Lucene ืืื ืืขืฉืจืืื ืืื Java. ื ืืึทืฉืจืืึทืืื ื ืคืื ืึทืืข ืื ืึทืืืืึทื ืืืืืฉืื ืคืื ืืขื ืืึธืืึธืจ ืืื ืื ืืืฆื ืืื
ืขื ืืขืืข ืขื ืืืฉืึทื ื ืืขื ืขื ืืขื ืืฆื ืคึฟืึทืจ ืงืึธืืคึผืืขืงืก ืึธื ืคึฟืจืขืื ืืื ืึท ืืึธืงืืืขื ื ืืึทืืึทืืืืก. ืคึฟืึทืจ ืืืึทืฉืคึผืื, ืืืื ืืื ืื ืืึธืจืคืึธืืึธืื ืคืื ืืขืจ ืฉืคึผืจืึทื ืึธืืขืจ ืืืื ืืืจื ืืขืึธ ืงืึธืืึธืจืืึทื ืึทืฅ.
ืืื ืืขื ืึทืจืืืงื, ืืื ืืืขื ืจืขืื ืืืขืื ืื ืืึทืกืืงืก ืคืื ES ื ืืฆื ืืขื ืืืึทืฉืคึผืื ืคืื ืื ืืขืงืกืื ื ืืืึธื ืึทืจืืืงืืขื. ืืื ืืืขื ืืืืึทืื ืืืจ ืืื ืฆื ืคืืืืขืจ, ืกืึธืจื ืืื ืืืื ืืึธืงืืืขื ืื.
ืึผืื ื ืืฉื ืฆื ืึธืคืขื ืืขื ืืืืฃ ืื ืึธืคึผืขืจืืืืื ื ืกืืกืืขื, ืืื ืืืขื ืืึทืื ืึทืืข ืจืืงืืืขืก ืฆื ES ื ืืฆื CURL. ืขืก ืืื ืืืื ืึท ืคึผืืืืื ืคึฟืึทืจ Google ืงืจืึธืื ืืขืจืืคื
ืืขืจ ืืขืงืกื ืึผืืื ืืื ืงืก ืฆื ืืึทืงืืืืขื ืืืืฉืึทื ืืื ืื ืืขืจืข ืืงืืจืื. ืืื ืื ืกืืฃ ืขืก ืืขื ืขื ืืื ืงืก ืคึฟืึทืจ ืฉื ืขื ืึทืงืกืขืก ืฆื ืื ืืึทืงืืืืขื ืืืืฉืึทื. ืืขืคืื ืืฆืืขืก ืคืื ืึทื ืคืึทืืืืืขืจ ืืขืจืืื ืขื ืงืขื ืขื ืืืื ืืขืคึฟืื ืขื ืืื
ืื ืกืืึธืืื ื 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 ืืื ื ืืฉื ืืืกืืืืื ืฆืืืืฉื ืคืืืืขืจืก ืืื ืงืืืืจืื, ืึทื ืฉืืึธื
ื ืึธื ืคึฟืจืขื ืงืึธื ืืขืงืกื ืืื ืึทื ืืขืจืฉ ืคืื ืึท ืคืืืืขืจ ืงืึธื ืืขืงืกื ืืื ืึทื ืื ืึธื ืคึฟืจืขื ืืืฉืขื ืขืจืืืฅ ืึท _ืกืงืึธืจืข ืืื ืืื ื ืืฉื ืงืึทืฉื. ืืื ืืืขื ืืืจ ืืืืืื ืืืืก _ืกืงืืจ ืืื ืฉืคืขืืขืจ.
ืคืืืืขืจ ืืืื ืืึทืืข
ืืืจ ื ืืฆื ืื ืืงืฉื
# ะฟะพะปััะธะผ ะฟะพััั, ะพะฟัะฑะปะธะบะพะฒะฐะฝะฝัะต 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, 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 ืืึทืืก. ืืื ืก ืจืืคื ืขืก ืคืขืืืงืืึทื, ืืืืึทื ืึทื ืึทื ืึทืืืืขืจ ืืื ืืขื ื ืึธืืขื ืืืขื ืืืื ืืขืืืืื ื ืืืจื ืคืขืืืงืืึทื.
{
"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 ืึทืจืืืงืืขื ืฆื ืืขื ืืื ืืขืงืก (ืืืึธื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 ะฟะพััะฐ ะฟัะพ ะบะพัะธะบะพะฒ
ืจืขืคึฟืขืจืขื ืฆื
Elasctic.co ืืขืจืืึธื ืขื ืคืืจืขืจ ืืืึธืกืึทืจ ืื ืกืืึทืืืจืื ื ืืึธืงืืืขื ื ืืึทื ืืคึผืืึทืืืืฉืึทื ืืื ืืขืงืก ืึธืคึผืขืจืึทืืืึธื ืก ืจืฉืืื ืคืื ืจืืงืืืขืก
PS
ืืืื ืืืจ ืืขื ื ืืื ืืขืจืขืกืืจื ืืื ืขื ืืขื ืึทืจืืืงืืขื-ืืขืงืฆืืขืก, ืืึธืื ืืืืืึทื ืคึฟืึทืจ ื ืืึทืข ืึทืจืืืงืืขื, ืึธืืขืจ ืืึธืื ืคึผืจืึทืคึผืึธืืืึทืื ืคึฟืึทืจ ืงืืืึทืคึผืขืจืืืฉืึทื, ืืื ืืืขื ืืืื ืฆืืคืจืืื ืฆื ืืึทืงืืืขื ืึท ืึธื ืืึธื ืืื ืึท ืคึผืขืจืืขื ืืขื ืึธื ืืึธื ืึธืืขืจ ืืืจื E- ืืจืืื [ืืืืขืื ืืืฉืืฆื].
ืืงืืจ: www.habr.com