Elasticsearch Basics

Elasticsearch ndi injini yosakira yokhala ndi json rest api, pogwiritsa ntchito Lucene ndipo yolembedwa mu Java. Kufotokozera za ubwino wonse wa injini iyi likupezeka pa webusaitiyi. Pazotsatira tidzatchula Elasticsearch ngati ES.

Injini zofananira zimagwiritsidwa ntchito pakusaka kovutirapo muzosunga zolembedwa. Mwachitsanzo, fufuzani moganizira kalembedwe ka chilankhulo kapena kusaka ndi ma geo coordinates.

M'nkhaniyi ndilankhula za zoyambira za ES pogwiritsa ntchito chitsanzo cha indexing blog posts. Ndikuwonetsani momwe mungasefe, kusanja ndikusaka zikalata.

Kuti ndisadalire makina ogwiritsira ntchito, ndipanga zopempha zonse ku ES pogwiritsa ntchito CURL. Palinso pulogalamu yowonjezera ya google chrome yotchedwa luntha.

Mawuwa ali ndi maulalo a zolemba ndi magwero ena. Pamapeto pake pali maulalo ofikira mwachangu zolembazo. Matanthauzo a mawu osadziwika angapezeke mu glossaries.

Kukhazikitsa ES

Kuti tichite izi, choyamba tiyenera Java. Madivelopa lembani khazikitsani mitundu ya Java yatsopano kuposa Java 8 update 20 kapena Java 7 update 55.

Kugawa kwa ES kulipo pa webusayiti ya wopanga. Pambuyo kumasula archive muyenera kuthamanga bin/elasticsearch. Zikupezekanso phukusi la apt ndi yum. Pali chithunzi chovomerezeka cha docker. Zambiri za kukhazikitsa.

Pambuyo kukhazikitsa ndi kukhazikitsa, tiyeni tiwone momwe zimagwirira ntchito:

# для удобства Π·Π°ΠΏΠΎΠΌΠ½ΠΈΠΌ адрСс Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ
#export ES_URL=$(docker-machine ip dev):9200
export ES_URL=localhost:9200

curl -X GET $ES_URL

Tidzalandira monga chonchi:

{
  "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"
}

Kulozera

Tiyeni tiwonjeze positi ku 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"
}'

yankho la seva:

{
  "_index" : "blog",
  "_type" : "post",
  "_id" : "1",
  "_version" : 1,
  "_shards" : {
    "total" : 2,
    "successful" : 1,
    "failed" : 0
  },
  "created" : false
}

ES idapangidwa zokha mlozera blog ndi mtundu positi. Titha kujambula fanizo lokhazikika: index ndi nkhokwe, ndipo mtundu ndi tebulo patsamba lino. Mtundu uliwonse uli ndi dongosolo lake - sanjira, monga tebulo lachibale. Mapu amapangidwa okha chikalatacho chikawonetsedwa:

# ΠŸΠΎΠ»ΡƒΡ‡ΠΈΠΌ mapping всСх Ρ‚ΠΈΠΏΠΎΠ² индСкса blog
curl -XGET "$ES_URL/blog/_mapping?pretty"

Mumayankhidwe a seva, ndidawonjezeranso zomwe zili muzolemba zomwe zalembedwa mu ndemanga:

{
  "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"
          }
        }
      }
    }
  }
}

Ndizofunikira kudziwa kuti ES sikusiyanitsa pakati pa mtengo umodzi ndi mndandanda wazinthu. Mwachitsanzo, gawo lamutu limangokhala ndi mutu, ndipo ma tags omwe ali ndi zingwe zambiri, ngakhale amaimiridwa mofanana pamapu.
Tikambirana zambiri za kupanga mapu pambuyo pake.

Zopempha

Kubweza chikalata ndi id yake:

# ΠΈΠ·Π²Π»Π΅Ρ‡Π΅ΠΌ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ с 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"
  }
}

Makiyi atsopano adawonekera poyankha: _version ΠΈ _source. Mwambiri, makiyi onse kuyambira ndi _ amasankhidwa kukhala ovomerezeka.

Mphindi _version ikuwonetsa mtundu wa chikalata. Ndikofunikira kuti njira yotsekera yodalirika igwire ntchito. Mwachitsanzo, tikufuna kusintha chikalata chomwe chili ndi mtundu 1. Timatumiza chikalata chomwe chasinthidwa ndikuwonetsa kuti uku ndikusintha kwa chikalata chokhala ndi mtundu 1. Ngati wina adasinthanso chikalata chokhala ndi mtundu 1 ndikutumiza zosintha patsogolo pathu, ndiye ES sidzavomereza kusintha kwathu, chifukwa imasunga chikalatacho ndi mtundu 2.

Mphindi _source lili ndi chikalata chomwe tidalozera. ES sagwiritsa ntchito mtengo uwu pofufuza chifukwa Ma index amagwiritsidwa ntchito pofufuza. Kuti musunge malo, ES imasunga chikalata chokhazikika. Ngati tikufuna id yokha, osati chikalata chonse, ndiye kuti titha kuletsa kusungirako gwero.

Ngati sitikufuna zambiri, titha kupeza zomwe zili mu _source:

curl -XGET "$ES_URL/blog/post/1/_source?pretty"
{
  "title" : "ВСсСлыС котята",
  "content" : "<p>БмСшная история ΠΏΡ€ΠΎ котят<p>",
  "tags" : [ "котята", "смСшная история" ],
  "published_at" : "2014-09-12T20:44:42+00:00"
}

Mukhozanso kusankha magawo ena okha:

# ΠΈΠ·Π²Π»Π΅Ρ‡Π΅ΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ»Π΅ title
curl -XGET "$ES_URL/blog/post/1?_source=title&pretty"
{
  "_index" : "blog",
  "_type" : "post",
  "_id" : "1",
  "_version" : 1,
  "found" : true,
  "_source" : {
    "title" : "ВСсСлыС котята"
  }
}

Tiyeni tilembe zolemba zina zingapo ndikufunsa mafunso ovuta.

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"
}'

Zosintha

# Π½Π°ΠΉΠ΄Π΅ΠΌ послСдний пост ΠΏΠΎ Π΄Π°Ρ‚Π΅ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈ ΠΈΠ·Π²Π»Π΅Ρ‡Π΅ΠΌ поля 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 ]
    } ]
  }
}

Tinasankha positi yomaliza. size amachepetsa kuchuluka kwa zikalata zomwe zikuyenera kuperekedwa. total ikuwonetsa kuchuluka kwa zikalata zomwe zikufanana ndi pempho. sort muzotulutsa muli mndandanda wamagulu onse omwe kusanja kumachitidwa. Iwo. tsikulo lidasinthidwa kukhala nambala yonse. Zambiri zokhuza kusanja zitha kupezeka mu zolemba.

Zosefera ndi mafunso

ES popeza mtundu 2 susiyanitsa pakati pa zosefera ndi mafunso, m'malo mwake lingaliro la zochitika likuyambitsidwa.
Funso limasiyana ndi zosefera chifukwa funso limapanga _score ndipo silinasungidwe. Ndikuwonetsani zomwe _score ili mtsogolo.

Sefa ndi tsiku

Timagwiritsa ntchito pempho zosiyanasiyana m'nkhani ya fyuluta:

# ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ посты, ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½Ρ‹Π΅ 1ΠΎΠ³ΠΎ сСнтября ΠΈΠ»ΠΈ ΠΏΠΎΠ·ΠΆΠ΅
curl -XGET "$ES_URL/blog/post/_search?pretty" -d'
{
  "filter": {
    "range": {
      "published_at": { "gte": "2014-09-01" }
    }
  }
}'

Sefa ndi ma tag

Timagwiritsa ntchito funso nthawi kuti mufufuze ma ID olembedwa omwe ali ndi mawu operekedwa:

# Π½Π°ΠΉΠ΄Π΅ΠΌ всС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹, Π² ΠΏΠΎΠ»Π΅ 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" : [ "котята" ]
      }
    } ]
  }
}

Kusaka mawu athunthu

Zitatu mwazolemba zathu zili ndi izi pazokhudza zomwe zili:

  • <p>БмСшная история ΠΏΡ€ΠΎ котят<p>
  • <p>БмСшная история ΠΏΡ€ΠΎ Ρ‰Π΅Π½ΠΊΠΎΠ²<p>
  • <p>Π”ΡƒΡˆΠ΅Ρ€Π°Π·Π΄ΠΈΡ€Π°ΡŽΡ‰Π°Ρ история ΠΏΡ€ΠΎ Π±Π΅Π΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΡ‚Π΅Π½ΠΊΠ° с ΡƒΠ»ΠΈΡ†Ρ‹<p>

Timagwiritsa ntchito kufanana funso kuti mufufuze ma ID olembedwa omwe ali ndi mawu operekedwa:

# 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
    } ]
  }
}

Komabe, ngati tifufuza "nkhani" m'munda wokhutira, sitidzapeza kalikonse, chifukwa Mlozerawu uli ndi mawu oyamba okha, osati matsinde ake. Kuti mupange kufufuza kwapamwamba, muyenera kukonza analyzer.

m'munda _score ziwonetsero kufunika. Ngati pempho likuchitidwa muzosefera, ndiye kuti _score value nthawi zonse idzakhala yofanana ndi 1, kutanthauza kufanana kwathunthu ndi fyuluta.

Analyzers

Analyzers pakufunika kuti musinthe mawu oyambira kukhala ma tokeni.
Analyzers amakhala ndi imodzi Chizindikiro ndi zingapo zomwe mungasankhe Zosefera Zizindikiro. Tokenizer ikhoza kutsogozedwa ndi angapo Zosefera za Char. Zizindikiro zimathyola chingwe choyambira kukhala zizindikiro, monga mipata ndi zilembo. TokenFilter ikhoza kusintha zizindikiro, kuchotsa kapena kuwonjezera zatsopano, mwachitsanzo, kusiya tsinde la mawu, kuchotsa ma prepositions, kuwonjezera mawu ofanana. CharFilter - imasintha chingwe chonse, mwachitsanzo, kudula ma tag a html.

ES ili ndi zambiri Standard analyzers. Mwachitsanzo, analyzer Chirasha.

Tiyeni titengerepo mwayi API ndipo tiwone momwe owerengera okhazikika komanso aku Russia amasinthira chingwe "Nkhani zoseketsa za ana amphaka":

# ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ 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
  } ]
}

Wosanthula wamba adagawa chingwecho ndi mipata ndikusandutsa chilichonse kukhala zilembo zocheperako, wosanthula waku Russia adachotsa mawu osafunika, ndikusintha kukhala zilembo zazing'ono ndikusiya tsinde la mawuwo.

Tiyeni tiwone zomwe Tokenizer, TokenFilters, CharFilters amagwiritsira ntchito russian analyzer:

{
  "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 ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ */
    }
  }
}

Tiyeni tifotokoze za analyzer yathu kutengera Russian, yomwe idula ma tag a html. Tiyeni tizitcha izo zosasintha, chifukwa chowunikira chomwe chili ndi dzinali chidzagwiritsidwa ntchito mwachisawawa.

{
  "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"
      ]
    }
  }
}

Choyamba, ma tag onse a HTML adzachotsedwa ku chingwe cha gwero, ndiye muyezo wa tokenizer udzagawanika kukhala zizindikiro, zizindikiro zomwe zimatsatira zidzasunthira kumunsi, mawu osafunikira adzachotsedwa, ndipo zizindikiro zotsalira zidzakhalabe tsinde la mawu.

Kupanga Index

Pamwambapa tafotokoza za analyzer yokhazikika. Idzagwiritsidwa ntchito kumadera onse a zingwe. Positi yathu ili ndi ma tag angapo, kotero ma tag nawonso amasinthidwa ndi analyzer. Chifukwa Tikuyang'ana zolemba molingana ndendende ndi tag, ndiye tiyenera kuletsa kusanthula kwa ma tag.

Tiyeni tipange index blog2 yokhala ndi analyzer ndi mapu, momwe kusanthula kwa ma tag kumayimitsidwa:

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"
        }
      }
    }
  }
}'

Tiyeni tiwonjeze zolemba zitatu zomwezo ku index iyi (blog3). Ndidzasiya ndondomekoyi chifukwa ... zikufanana ndi kuwonjezera zikalata ku blog index.

Kusaka mawu athunthu mothandizidwa ndi mawu

Tiyeni tiwone mtundu wina wa pempho:

# Π½Π°ΠΉΠ΄Π΅ΠΌ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… встрСчаСтся слово 'истории'
# 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"
      ]
    }
  }
}'

Chifukwa Tikugwiritsa ntchito analyzer yokhala ndi Russian stemming, ndiye pempholi libweza zolemba zonse, ngakhale zili ndi mawu oti 'mbiri'.

Pempho litha kukhala ndi zilembo zapadera, mwachitsanzo:

""fried eggs" +(eggplant | potato) -frittata"

Funsani mawu akuti:

+ 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 поста ΠΏΡ€ΠΎ ΠΊΠΎΡ‚ΠΈΠΊΠΎΠ²

powatsimikizira

PS

Ngati muli ndi chidwi ndi zolemba zofananira-maphunziro, muli ndi malingaliro azolemba zatsopano, kapena muli ndi malingaliro ogwirizana, ndiye kuti ndidzakhala wokondwa kulandira uthenga muuthenga wanga kapena imelo. [imelo ndiotetezedwa].

Source: www.habr.com