ElasticSearchをインストールして、データを作成してみたので、今度は検索方法をチェックしてみます。MySQLと違って、APIにJsonを投げて「Query DSLというもの」、返り値をJsonで得るという手法です。Apache Solrと同じような感じですね。ブラウザでURLを叩いてCallしても不便なので、kibanaの「Dev Tool」から試してみます。

すべてのドキュメントを取得してみる (match_all)

MySQLに置き換えると、「select * from db_name.table_name」というやつです。MySQL Workbenchなどでは、デフォルトでlimit を決められていますが、ElasticSearchも同様でデフォルト数が決められています。デフォルト数は、10レコードです

///type_nameの中に入ってるドキュメントを探す場合
///MySQLでいうところの
///select * from db_name.table_name

GET /{index_name}/{type_name}/_search
{
  "query": {

    "match_all": {}
      
    }
 
}


///index_name全体に入ってるドキュメントを探す場合
GET /{index_name}/_search
{
  "query": {

    "match_all": {}
      
    }
 
}

indexの中すべてを横断検索できるのはいいですね。MySQLはできなかったような気がしますね。
10レコードと言われると、色々考えてしまうのがMySQLでいうところのoffsetのところ。

取得レコード数とスキップする件数を指定してを取得してみる (size,from)

MySQLでいうところのlimitは、ElasticSearchでは、fromとsizeで指定します。

///10件スキップした後、20件を取得する
///MySQLでいうところの
///select * from db_name.table_name limit 10,20

GET /{index_name}/{type_name}/_search
{
  "query": {

    "match_all": {}
      
    },
  "from":10,
  "size":20
 
}

queryと同じ位置の並列で記載します。

となると、今度は並び順が気になってきます。MySQLでいうところの「order by」ですね。

特定のカラム(_source)の並び順を指定して、取得してみる (sort)


///_id で昇順ソートした後、10件スキップした後、20件を取得する
///MySQLでいうところの
///select * from db_name.table_name order by _id asc limit 10,20

GET /{index_name}/{type_name}/_search
{
  "query": {

    "match_all": {}
      
    },
  "from":10,
  "size":20,
  "sort":{"_id":"asc"}
 
}

///第二のsort条件をつける場合、sortの部分を配列にする。
///updatedを第一、_idを第二にしてみる。
///MySQLでいうところの
///select * from db_name.table_name order by updated asc, _id asc limit 10,20

GET /{index_name}/{type_name}/_search
{
  "query": {

    "match_all": {}
      
    },
  "from":10,
  "size":20,
  "sort":[{"updated":"asc","_id":"asc"}]
 
}

ちなみに、他のカラムで実行したところ、「Fielddata is disabled on text fields by default. Set fielddata=true on [{type_name}] in order to load fielddata in memory by uninverting the inverted index. Note that this can however use significant memory. Alternatively use a keyword field instead.」というエラーが発生します。

私のElasticSearchのバージョンは6.8.4なのですが、このバージョンではmappingした際、Fiedldataが有効になっていないので、ソートできないようです。つまり、sortできるのはfielddataをtrueにして作成しないといけないようです。

Mysqlでいうところのindexかかってないところでsortするなよってことなのでしょうか。

今度は、取得する際に全カラムいらないんだけど。。。となってきますね。全部取得すると重いですし、カラムを指定して取得してみます。

特定のカラムを指定してを取得する(_source)

上記にも使ったupdatedと、titleというカラムを指定して取得してみます

///updatedで昇順し、さらに_id で昇順ソートした後、titleとupdatedを、10件スキップした後、20件を取得する
///MySQLでいうところの
///select title,updated from db_name.table_name order by updated asc,_id asc limit 10,20

GET /{index_name}/{type_name}/_search
{
  "query": {

    "match_all": {}
      
    },
  "from":10,
  "size":20,
  "sort":[{"updated":"asc","_id":"asc"}],
  "_source":["title","updated"]
 
}

複数条件を組み合わせて検索する (where ~ AND,OR)

複数条件をつけての検索は、bool検索を使うらしい。で、mustはAND(マッチスコアを考慮)、filterもAND(スコア無視),shouldはOR,must_notは否定のNOTらしい。

以下サンプル

///以下はrangeで数値の範囲なども指定してみました。
//Mysqlでいうところの
//select * from db_name.table_name 
//where animal_name="cat" and description like "%トラ模様%"
//and pageview>=100 and pageview<=2000 order by favorite_count desc

GET /{index_name}/{type_name}/_search
{

  "query": { 
    "bool": {
      "must": [
        {
          "term": {
             "animal_name": "cat"
            }
        },
        {
          "match":{
            "description":"トラ模様"
          }
        },
        {
          "range":{
            "pageview":{
              "gte":100,
              "lte": 200
            }
          }
        }
      ]
    }
  },
  "sort":{
    "favorite_count":"desc"
  }
}

mustとshouldを組み合わせて検索する (where ~ AND,OR)

さらにちょっと複雑なクエリを試してみます

///MySQLでいうところの
//select * from db_name.table_name 
//where animal_name="cat" and (title like "%ペットホテル%" or description like "%ペットホテル%")
//order by pageview desc
GET /{index_name}/{type_name}/_search

{

  "query": { 
    "bool": {
      "must":[
        {
          "bool":
            {
              "must": {
                "term": {
                   "animal_name": "cat"
                  }
              }
            }
        },
        {
          "bool": { 
              "should":[{
                "match_phrase":{
                  "title":"ペットホテル"
                }},
                {"match_phrase":{
                  "description":"ペットホテル"
                }
              }]
           }
        }]
    }
  },

  "sort":{
    "pageview":"desc"
  }
}
    

コメント

滿天星娛樂城 STAR



https://xn--uis74a0us56agwe20i.com/
早上好!
我想向您介绍我们的购买和出售卡片的平台。
目前,我们拥有大量不同国家的卡片。
有效卡片从10%到95%不等。价格从0.5美元到25美元不等。
希望您喜欢使用我们的商店!

https://cvv-news.store
http://mdxi5muztwunq4w2f4idbl7uzukcvoabjfvic75tf33lub6eflm5joqd.onion/

cvv shop dumps, Fresh Cc Shop, Cc Sites, Legit Cvv Shops, Dumps And Cvv For Sale, cc shopping, Dumps And Bins, Shop Cvv Online, cc best shopping, cc dumps, cc cvv shop, Shop Cc, Cc Store Online, Fresh Cc Dumps, high valid cvv shop, Buy Track 1 And 2 Dumps Online
こんにちはで、お気軽にどうぞ!

私の名前はイリーナです、私はもはや女の子ではありません、私は33歳で、興味深く、時には自堕落な生活を送り、重度のうつ病に陥りました。
私は様々な医師や心理学者に行きました、そしてたくさんのお金と時間を費やした後、私は私の解決策を見つけました、あなたは何を尋ねますか?
私はちょうど10分間毎日ジョークを読み始め、ユーモアに関連するイベントに頻繁に出席し、これは肯定的な動的を持ち始め、私の人生を変えました。
ところで、良い冗談サイト
https://www.anekdotas.ru/anekdoty-pro-sosiski-2/
https://www.anekdotas.ru/lebed-i-malenkaja-seraja-utochka-drama-osen-ozero-2
https://www.anekdotas.ru/anekdoty-pro-zaporozhec-i-mersedes-3/
https://www.anekdotas.ru/anekdoty-pro-jutub-3/
https://www.anekdotas.ru/anekdoty-pro-vovochku-i-detej-novye-anekdoty-pro-2/
https://www.anekdotas.ru/janis-brajlovskijanekdot-pro-300-2/
https://www.anekdotas.ru/anekdoty-pro-tualetnuju-bumagu-4/

私はしばしばそれを他の多くの人から読んでいます、そして私はあなたに助言します)
なぜ問題や心配で自分自身をロードします。

笑って、長生きしてください!
こんにちはで、お気軽にどうぞ!

私は本当の経験を共有したい、年齢とともに私の性力は減少し始め、最終的には嘆かわしいレベルに達しました(
最も美しくて若い女の子でさえ、私の中で適切なレベルのエネルギーを興奮させませんでした…
それはひどいものでした、そして、友人があなたが冗談を読んで毎日笑う必要があると私に言ったとき、うつ病は始まりました、そして、すべてが徐々に良くなるでしょう。
私にこのサイトをお勧めします
https://www.kompotanekdot.ru/anekdoty-pro-zagadki-stranica-1/
https://www.kompotanekdot.ru/anekdoty-pro-zdorove-stranica-1/
https://www.kompotanekdot.ru/anekdoty-pro-zhenu-i-muzha-smeshnye-do-slez-40/
https://www.kompotanekdot.ru/anekdoty-pro-tjurmu-samye-smeshnye-do-slez/
https://www.kompotanekdot.ru/anekdoty-pro-vertolet-smeshnaja-podborka/
https://www.kompotanekdot.ru/anekdoty-pro-teshhu-bolshaja-podborka-svezhih/
https://www.kompotanekdot.ru/anekdot-paradoks-zhizni-kogda-zdorovja-hot/

私はナンセンスだと思いましたが、何もすることはありませんでした、そして私は体系的に笑い始め、ユーモアについてのすべてを読み始めました!
私はそれを信じていませんでしたが、2週間後、私の効力は正常になり、私は愛の空間に戻ってモデルと一緒に歩くことができました!
笑いとジョークをありがとう、そして健康になります)

私はすでに87歳ですが、私はまだベッドで強いです)
HOYA娛樂城

https://xn--hoya-8h5gx1jhq2b.tw/
こんにちは!

私はディナです、私は35歳、美しくて甘いです、私は私の発見についてあなたに話したいです)
私は多くのことについて否定的な見方をしていましたが、しばしば環境、人々、政治を心配し、それは私の健康と生活の質に一般的に悪影響を及ぼし始めました。
心理学者は私にもっと笑うように忠告しました、そして私が変えることができないものを研究しないように、ポイントは何ですか!
私は定期的にユーモアのあるジョークやサイトを読み始めました、そして2ヶ月後に私は別の人になりました、穏やかで親切になりました、物事は山に行き、人々は私の会社にもっといたいと思っています、男性の終わりはありません。
私はジョークが好きなすべての人に助言します,このサイト
https://www.anekdotor.ru/anekdoty-pro-russkih-i-nemcev/
https://www.anekdotor.ru/anekdoty-pro-uchitelej/
https://www.anekdotor.ru/anekdoty-pro-russkih-nemcev-i-poljakov/
https://www.anekdotor.ru/anekdoty-pro-sport-2/
https://www.anekdotor.ru/anekdoty-pro-vrachej-i-pacientov-2/
https://www.anekdotor.ru/anekdoty-pro-uchenyh/
https://www.anekdotor.ru/anekdoty-pro-julju-anekdoty-pro-julju-anekdoty-ot/

すべてがシンプルで、ケースについて、読んで、笑って健康になります!

グッドラック-フレンズ)
こんにちはになります!!!
どのくらいの頻度で夢を見ますか? あなたは何をしますか? あなたはただ忘れたり、彼らの意味とあなたの人生への影響を理解しようとします!
睡眠は、人間の脳の右半球の重要な側面であり、潜在意識からの情報の伝達は、重要な信号を与え、時には将来の出来事を予測することさえあります!
夢の解釈は非常に難しいように思われるかもしれませんが、正しくアプローチして夢の本に従ってすべてを研究すればそうではありません。
https://www.sonmaster.ru/k-chemu-snitsja-palto-2/
https://www.sonmaster.ru/k-chemu-snitsja-uborka-v-chuzhom-dome/
https://www.sonmaster.ru/k-chemu-snjatsja-sergi-s-kamnjami/
https://www.sonmaster.ru/k-chemu-snitsja-lechit-zuby-u-stomatologa/
https://www.sonmaster.ru/k-chemu-snitsja-mnogo-paukov/
https://www.sonmaster.ru/k-chemu-snitsja-jablonja/
https://www.sonmaster.ru/k-chemu-snitsja-osminog/

あらゆる機会のための夢の本、余分なものは何もなく、夢を解読するだけで、柔軟な検索とあなたの人生と努力のための最大の利益!
私たちはあなたに幸運を祈り、メッセージが偶然にあなたに届いた場合は謝罪します!
こんにちはで、お気軽にどうぞ!
私はマーシャです、私は32歳です、私はイギリスに住んでいます、私は学校に行く2人の子供を育てます)
学校は子供と親の両方にとって非常に多くのストレスであり、専門科目のテストのための一定のレッスンと準備は私を夢中にさせました(
私は緊張し、夫と一緒に寝るのをやめ、緊張したチックが始まりました、それはひどいものでした…
私の友人が解決策を持つサイトを見つけて、彼らの方法論に従って宿題をしようとするように私に忠告したのは良いことです。
ところで、良いウェブサイト
https://www.controlworks.ru/leksika-kontrolnaja/
https://www.controlworks.ru/kontrolnaja-rabota-opredelenie/
https://www.controlworks.ru/kontrolnaja-statistiki/
https://www.controlworks.ru/kontrolnaja-rabota-nalogi/
https://www.controlworks.ru/kontrolnaja-rabota-mnogoznachnye-chisla/
https://www.controlworks.ru/kontrolnaja-po-geografii-8/
https://www.controlworks.ru/kontrolnaja-rabota-nomer-6-vilenkin-otvety/

広告、便利な検索、テスト論文に関する多くの貴重な情報はありません!
正直に言うと、私は平和的に眠り始めました、あなたが解決策を見つけてあなたの好きなものにもっと時間を費やすことができるようなサイトのおかげで、家族の中でセックスと平和が回復しました!
がんばろう!
こんにちはになります!!!
どのくらいの頻度で夢を見ますか? あなたは何をしますか? あなたはただ忘れたり、彼らの意味とあなたの人生への影響を理解しようとします!
睡眠は、人間の脳の右半球の重要な側面であり、潜在意識からの情報の伝達は、重要な信号を与え、時には将来の出来事を予測することさえあります!
夢の解釈は非常に難しいように思われるかもしれませんが、正しくアプローチして夢の本に従ってすべてを研究すればそうではありません。
https://www.sktrance.ru/k-chemu-snitsja-burja/
https://www.sktrance.ru/k-chemu-prisnilos-tornado/
https://www.sktrance.ru/k-chemu-snitsja-zelenaja-trava-po-populjarnym/
https://www.sktrance.ru/uzhalila-pchela-vo-sne/
https://www.sktrance.ru/k-chemu-snitsja-chernyj-kon/
https://www.sktrance.ru/k-chemu-snjatsja-muravi-tolkovanija-v-raznyh/
https://www.sktrance.ru/k-chemu-snjatsja-busy/

あらゆる機会のための夢の本、余分なものは何もなく、夢を解読するだけで、柔軟な検索とあなたの人生と努力のための最大の利益!
私たちはあなたに幸運を祈り、メッセージが偶然にあなたに届いた場合は謝罪します!
こんにちはになります!!!
どのくらいの頻度で夢を見ますか? あなたは何をしますか? あなたはただ忘れたり、彼らの意味とあなたの人生への影響を理解しようとします!
睡眠は人間の脳の右半球の重要な側面であり、潜在意識から情報を伝達し、重要な信号を与え、時には将来の出来事を予測することさえあります!
夢の解釈は非常に難しいように思われるかもしれませんが、正しくアプローチして夢の本に従ってすべてを研究すればそうではありません。
https://www.sonnikas.ru/k-chemu-snjatsja-dlinnye-nogti/
https://www.sonnikas.ru/k-chemu-snitsja-stomatolog/
https://www.sonnikas.ru/k-chemu-snitsja-dynja/
https://www.sonnikas.ru/k-chemu-snitsja-metro/
https://www.sonnikas.ru/k-chemu-snitsja-shljapa-2/
https://www.sonnikas.ru/k-chemu-snitsja-mogilnaja-jama-2/
https://www.sonnikas.ru/k-chemu-snitsja-sobirat-zemljaniku/

あらゆる機会のための夢の本、余分なものは何もなく、夢を解読するだけで、柔軟な検索とあなたの人生と努力のための最大の利益!
私たちはあなたに幸運を祈り、メッセージが偶然にあなたに届いた場合は謝罪します!
1    2    3    4    5    6    7    8