Elasticsearch6.x
はじめに ElasticsearchのAggregationsのnested,reverse_nested,parent,childrenについては次の過去記事ではごまかして説明をスキップしたので、あらためてまとめてみました。 itdepends.hateblo.jp まとめてみた... と言っても、公式の例を筆者なりに噛み砕…
ElasticsearchのMetrics aggregationsは、その名の通り?統計的なAggregationsです。 www.elastic.co 機能充実はありたがたいもののその分だけ数も多いですね。 それぞれの名称、SQLや他の言語などでの関数名と類似性から、得られる値や使い方は同じような用…
はじめに 私なぞは、検索時とインデックス時のアナライザーは同じものにしとく(つまりデフォルト)方が検索エンジンが賢いのでよしなにやってくれる派(という名のモグリ)なのですが、 edge_ngramやmultiplexerのような「トークン複数派生」的なアナライザー…
はじめに Elasticsearchのmatch_phraseで語順を意識して検索したいけど、多少は外れてたやつも下位で良いのでヒットさせたいよねという例をサカナにanalyzeの頭の体操をしてみましたの例です。 確認はver6.8で実施しましたが、基本は7系でも動作すると思いま…
Elasticsearchに限らずですが、検索エンジン案件ぽい話の際に、SQL/RDB界隈の部分一致検索のメタファーでN-Gramでの検索を語ることになりつつも、 結果、「部分一致」の先入観からかえってわかりにくくなる面もあって悩ましいということもなくはない...ので…
そろそろきりの良いエディション、バージョンでのElasticsearchに関する俺々ポエムを吐き出し切っておきたいと思う今日この頃です。 itdepends.hateblo.jp さて、上記の過去記事あたりで「マイフェイバリット」としてAnalyze設定について講釈を述べましたが…
はじめに Elasticsearchでは、検索語に対してあるドキュメントのあるフィールドの類似度を評価してリストの並び順を制御します。 この評価関数はBM25がデフォルトだそうですが、BM25やその由来のTF/IDFではどうも高級すぎて少し使いづらい時があります(ある…
拙ブログに、「Elasticsearch aggs/aggregations flat」で検索して迷いこむ方がいらっしゃるようです。 「flat」というところから、もしかして?、と思いまして、あらためて Elasticsearch のAggregationのひとつのCompositeに入門してみましたので、せっかく…
Elasitcsearchで「全文検索」寄りでいろいろ遊んでみようと思うと、程よい公開データが欲しくなります。 そんなデータの一例として、livedoorレストラン DataSetというのがありますので、こちらを利用させてもらって勉強するというのも一つの手かと思います…
一つ前のこちら↓の記事で、ElasticsearchのAggregationsのシンタックス例を挙げてみました。ElasticsearchのAggregationsでしばしば話題になるトピックを忘れていましたので、補足します。 itdepends.hateblo.jp 具体的には、Post filterの話です。 www.elas…
livedoor グルメの DataSet をElasticsearchに取り込んで、Aggregations(aggs)を試してみた、の例です。 Aggregationsは、SQLでいうところのgroup byに近い演算です。グループ化や集計対象が、SQL(RDB)の場合はカラムの値なのに対し、転置インデックスの格納…
Elasticsearchには、Search Templateという、よく使うクエリをElasticsearch自体に登録して、それをテンプレートにして検索クエリの一部を差し替えたような検索ができます。 使い所によって、共通化、タイプ量削減、設計方針の強制、コンセプトの共有、いろ…
この記事は、ElasticsearchのGEO系検索のうち、GeoShape DSL(geo_shape)を試してみたものになります。 次の記事の続きです。 itdepends.hateblo.jp また、次の別の記事でGeoPandasを使って(あまりシェープファイルやGeoJSONといったGIS用データ形式がわかっ…
ElasticsearchのGEO系検索のうち、ポリゴンをからめた検索について試してみました。 www.elastic.co なお、試したのはElasticsearch 6.8ですが、7系に橋渡ししやすいクエリやMapping設定の記述としたつもりです。ただし、紙面の都合・その他の理由によりでve…
はじめに 何度目かのElasticsearchのオレオレスコアリング論まとめです。 この記事をまとめるきっかけとして、Elasticsearch ver7系におけるScript score queryなるもので、今までできなかった(?)BM25などから得られた関連度に細工ができるようで、これは知…
この記事の内容 本記事では、Elasticsearchのscript query について、クエリ例を列挙しています。 この記事の内容 script queryの使い所(と筆者が思うところ) script query 実例 ◆インデックスの設定 ◆サンプルデータ登録 ◆クエリ例 (1) Aが1より大きいも…
はじめに この記事は、次の記事の続きです。 itdepends.hateblo.jp 前の記事では、ひらがな(読み仮名)→漢字にフォーカスしましたが、ここでは、ひらがなの単語の複合語や漢字とひらがなの混合の複合語などででヒットさせるにはということで膨らませてみま…
はじめに Elasticsearch(kuromoji)では、アナライザーに「kuromoji_readingform」というものがあり、これを使うと「読み」に関して、表記揺れや曖昧検索相当に対応できます。 ただし、この「読み」部分については、実は、kuromojiの形態素解析(分かち書き/to…
1. はじめに この記事は、ある検索系の問題設定において、できるだけElasticsearchの機能に閉じて*1手軽にやれるかどうか、という、よくある100本ノック風のチャレンジ(1本だけですが)のメモです。 図らずも、Elasticsearchのアナライズの解説っぽいところ…
はじめに 検索エンジンのスコアリング・チューニングは「関連度」がキモ...だが... このブログの前の記事で、「BM25」のような情報検索における関連度について、「使わせていただく立場」として載自分なりの講釈を述べてみました。 itdepends.hateblo.jp 関…
1. はじめに このブログではElasticsearchについて時々思い出したように書きなぐっております。 そしてこの記事では、Elasticsearchのデフォルトのスコアリング方式であるBM25について、数式が苦手でも、なんとなく分かった気になる(かもしれない)解説を試…
はじめに この記事は次の記事のちょっとだけ補足(つづき)です。 itdepends.hateblo.jp 記事の概要 前の記事では、ひとことでいうとスコアリングは文字通り加点方針(条件に該当するとプラスが重なる方針)がオススメみたいなところを示唆しておりました。 …
はじめに この記事は次の記事のアナザーバージョン(切り口は少し違うが同じことを別の表現で表したもの)です。 itdepends.hateblo.jp itdepends.hateblo.jp とあるタイプの検索サイトのElasticsearchを使ったサービス設計などに関する私見(2019年改訂版) …
はじめに Elasticsearch のPainless Scriptを「Score」コンテキストで、どんな記述ができそうかのさわりの部分を確認してみました。 という記事を書いておいてアレですが、この手のものは公式のリファレンスをしっかり読みましょう。 www.elastic.co 本格的…
はじめに この記事は、Elasticsearchの日本語検索のアナライザー周りの話の雑談&ちょっとした実験です。図らずもPythonのPandasとPythonのElasticsearch公式クライアントのちょいサンプル紹介にもなっています。 Elasticsearchのバージョンは6.4です。 経緯 …
はじめに Elasticsearchの形態素解析(kuromoji)による分かち書き時のアナライザーのtype設定にsearch、normal、extendedというものがあります。 日本語環境で、このブログで記事を書く時に仮置きしている「レストラン検索サイト風サイト」などをイメージする…
はじめに itdepends.hateblo.jp 上記でfunction_scoreのお試しをしたこともあり、Elasticsearchのスコアリングについて講釈をたれてみたくなったので、記事にしました。 まえおき等 確認したのは、Elasticsearch6.4です。ただし、特にクエリ例などは出てきま…
Elasticsearch GEO系クエリとこの記事の概要 GEO系クエリにはいくつかありますが、さくっと試しやすいのが、 geo_bounding_boxとgeo_distanceクエリです。 前者は、検索したい四方の北西と南東の座標を検索条件にあたえて、そのBOX内の座標を持つドキュメン…
はじめに 駅データ.jpという駅の路線データおよび緯度経度の座標を管理してありフリーでも利用可能な*1データが提供されています。 www.ekidata.jp 今回駅データ.jpのデータについて、次のチュートリアル(ひとまず動くサンプルコードを動かしてみるの意)と…
はじめに Elasticsearchには、JavaScript版の公式クライアントライブラリがあるのですが、ブラウザでも動作するようなので、それで主に検索中心に少し遊んでみました。 といっても、ここ↓にある例のまんまです。 www.elastic.co ただし、さすがに上記のもの…