はてだBlog(仮称)

私的なブログど真ん中のつもりでしたが、気づけばWebサイト系のアプリケーション開発周りで感じたこと寄りの自分メモなどをつれづれ述べています。2020年6月現在、Elasticsearch、pandas、CMSなどに関する話題が多めです。...ですが、だんだんとより私的なプログラムのスニペット置き場になりつつあります。ブログで述べている内容は所属組織で販売している製品などに関するものではなく、また所属する組織の見解を代表するものではありません。

Elasticsearch

ElasticsearchのPainless Scriptのひとまず簡単な記述例

はじめに Elasticsearch のPainless Scriptを「Score」コンテキストで、どんな記述ができそうかのさわりの部分を確認してみました。 という記事を書いておいてアレですが、この手のものは公式のリファレンスをしっかり読みましょう。 www.elastic.co 本格的…

Elasticsearchで検索時のアナライザーとインデックス時のアナライザーを変えてみる実験

はじめに この記事は、Elasticsearchの日本語検索のアナライザー周りの話の雑談&ちょっとした実験です。図らずもPythonのPandasとPythonのElasticsearch公式クライアントのちょいサンプル紹介にもなっています。 Elasticsearchのバージョンは6.4です。 経緯 …

Elasticsearchのアナライザーtypeのsearch、normal、extendedについてのなんとなくの話

はじめに Elasticsearchの形態素解析(kuromoji)による分かち書き時のアナライザーのtype設定にsearch、normal、extendedというものがあります。 日本語環境で、このブログで記事を書く時に仮置きしている「レストラン検索サイト風サイト」などをイメージする…

検索エンジン Elasticsearchのスコアリングの頑張り方についてmy講釈(というか雑ポエム)

はじめに itdepends.hateblo.jp 上記でfunction_scoreのお試しをしたこともあり、Elasticsearchのスコアリングについて講釈をたれてみたくなったので、記事にしました。 まえおき等 確認したのは、Elasticsearch6.4です。ただし、特にクエリ例などは出てきま…

ElasticsearchのPythonクライアントでPandasを使って手軽にANALYZERの有効PoCをやってみるアドホックツール(の習作)

はじめに Elasticsearch(6.4)、PythonおよびPandas関連のやってみた系の記事です。あと、ElasticsearchのPythonクライアントを使ってみたという内容も含んでいます。ElasticsearchのANALYZERの話もあまり詳しくは解説していませんが、うっすらそれとなく含ま…

ElasticsearchでGEO系クエリで遊びます。ついでにfunction_scoreも勉強してみます。

Elasticsearch GEO系クエリとこの記事の概要 GEO系クエリにはいくつかありますが、さくっと試しやすいのが、 geo_bounding_boxとgeo_distanceクエリです。 前者は、検索したい四方の北西と南東の座標を検索条件にあたえて、そのBOX内の座標を持つドキュメン…

駅データ.jpをサンプルに使ったElasticsearchのGeo検索のクエリ例、事前準備のPandas、Pyprojでのデータ加工、Pythonクライアントでのバルクロード、Pythonクライアントでの検索、

はじめに 駅データ.jpという駅の路線データおよび緯度経度の座標を管理してありフリーでも利用可能な*1データが提供されています。 www.ekidata.jp 今回駅データ.jpのデータについて、次のチュートリアル(ひとまず動くサンプルコードを動かしてみるの意)と…

Pandas(もしくはPython)のオレオレイディオム

はじめに Elasticsearchに取り込むにはそのままではちょっとアレかなという類のデータを手間をかけずにPandasでデータ変換するにはというテーマで考え事をしてみました。 「よくある例」なのかは断言できませんが、ボキャブラリーとして手札にあれば、間に合…

Elasticsearch公式JavaScriptクライアントをブラウザで使ってみる&Vue.js/Vuetifyでなんちゃって検索サービスSPA風をスクラッチ

はじめに Elasticsearchには、JavaScript版の公式クライアントライブラリがあるのですが、ブラウザでも動作するようなので、それで主に検索中心に少し遊んでみました。 といっても、ここ↓にある例のまんまです。 www.elastic.co ただし、さすがに上記のもの…

Elasticsearch percolator再び

Elasticsearch percolatorと私 再びとはなんぞやといいますところ、このブログの中での登場が2回目ですという意味です(笑)。 最初の登場は、こちら。 itdepends.hateblo.jp 上記の説明では、percolatorについては、公式リファレンスの直訳・意訳で検索条件…

Vue.js版ReactiveSearchのお試しコード例の2例目(カスタムクエリ型利用の場合にVuexを使って複数検索BOXまたがりる)- ElasticsearchのPoC

はじめに itdepends.hateblo.jp この記事はこちら↑の続きです。 冒頭のリンクのとおり、Elasticsearchをターゲットにした便利なSPAプラグインであるReactiveSearchを使ってみたのですが、ここではReactiveSearchにクエリを任せる標準方式ではなく、カスタム…

Vue.js版ReactiveSearchのお試しコード例

Elasticsearchで検索の当たり具合などをいろいろ試すために、アドカレ2018で知ったReactivSearchに目をつけました。 そこで、ReactiveSearchのVue.js版のアドホックなかつできるだけミニマムな動作例の自分用コピペ元が欲しくなりまして、以下に手順的なもの…

とあるタイプの検索サイトのElasticsearchを使ったサービス設計などに関する私見(2019年改訂版)

検索サイトで、どのようにElasticsearchを活かしてサイトをディレクションするかについて自分の意見をまとめてみました。 まとめてみたと言いいつつ、アタマの整理の過程をダンプしたという体裁になっています。... のでまとまってないかもしれません。 何か…

elasticsearch.js(JavaScript版 Elasticsearch Clients)のAPI早見表的なもの

少々思うことがあり、Elasticsearchの公式JavaScriptクライアントで何ができるのか俯瞰したかったため、APIのパラメータ早見表としてまとめてみました。 画像版 pdf版 JavaScriptのシグネチャ風版 table版 無印 cat、cluster, indices ingest, nodes, snapsh…

Elasticsearchを少々気の利いたgrepとして使ってみる冬休みの実験

はじめに 具体的にどうという話ではないのですが、一部の界隈では、貧弱な環境でgrepコマンドのみで様々なテキスト調査、下手をすれば人間をAIに見立てたNLPを実施しなければならんということが無いでしょうか。 貧弱な環境の解決にはなりませんが、もし近く…

Term Vectors、Multi termvectorsでドキュメント中の単語出現回数を確認(Elasticsearch)

Elasticsearchには、本分である検索もさることながらドキュメント(テキスト)に関する調査も可能です。 調査も...というか、Elasticsearchのような検索エンジンはテキストマイニングの情報技術の結集かと思いますので、テキストマイニングで出てくるような話…

kuromojiプラグインのkuromoji_part_of_speechのspeechの一覧

私はどちらかといえば、Elasticsearchのkuromojiプラグインのkuromoji_part_of_speech についてはデフォルトのままで(つまり、stoptagsの設定は特に行わない)で良いのではないかと考えている派です。 が、当然ですが、案件ややりたいことによる訳で、なに…

続:ナレッジインデックスの有効性のゆるい確認、 続:検索練習用のサンプルデータのインポート(ElasticsearchのSignificant text )

はじめに この記事は、 itdepends.hateblo.jp のおおよその続編。 また、 itdepends.hateblo.jp itdepends.hateblo.jp の親戚記事です。 一言で言うと、「ナレッジインデックス(仮称)」というものを考えて、こいつの有効性を(実証は難しいものの)いくつ…

別立てのナレッジインデックス(検索UX向上のためのオレオレ考察 (Elasticsearch))

はじめに 弱者のエンジニアリング、細腕エンジニアとして、検索サイトのUX向上に向けて、せっかくある記事ページをナレッジインデックスとして検索に活かそうという論を主張します。 (Elasticsearchカテゴリとしたのは、Elasticsearchの機能にインスパイアさ…

Analyze設定のマイフェイバリット(Elasticsearch)

◯◯たるもの、嗜みの一つとして、Elasticsearchの日本語関連のAnalyze設定のフェイバリットのひとつ、ふたつはお持ちかと思います。 検索要件次第のところもありますが、そこがはっきりしない場合など、自分の脳内基本設定の軸があることで、それとの比較でト…

トラブルシュート時などの現状ざっくり把握のためのAPI一覧まとめ (Elasticsearch)

検索アプリエンジニアの立ち位置視点で、Elasticsearchのモニタリング全般やテーブル構造(テーブルではありませんが...、たとえ話として)、インデックスに抱えているデータをマシンルームのような制限がある場所で(※そのような状況が良いかは別に置いてお…

Text datatypeとKeyword datatypeの公式Rでの設定項目を一覧比較して理解を深める(Elasticsearch)

はじめに Elasticsearchのデータタイプのうち文字列系のtextとkeywordについて、それぞれを選択した場合の詳細Mapping設定での設定可能プロパティを表にして、これらの違いから、textとkeywordのデータタイプ自体の理解を深めることにしました。 文字列系デ…

検索練習用のサンプルデータのインポート@Elasticsearch:住所マスタを使おう

はじめに Elasticsearchの検索やヒットの仕方をいろいろためしてみたいという時に、そもそものデータをどう用意するかというところは地味ながら悩ましいです。 というのも、bulk APIはあるものの、Elasticsearchは良くも悪くもJSONの世界観ですし、試したり…

検索サイトのUX検討の道しるべ(考えてみた): Elasticsearchの活用視点

はじめにのはじめに この記事では、検索サイトをインスタントに検討するときに、こんな形でサバきかたをしたらほどよく効率的・効果的なのではないかというところの自説をつらづらと書き綴ってみました。 (前置きが長いです。) はじめに: Elasticsearchの…

Full text queries と Term level queries一覧見比べ(Elasticsearch)

Elasticsearchのmatch系のクエリとterm系のクエリを、一覧にして比較してみました。 一覧にすることで、似たようなクエリで、あれ? これどっちだったけというところで振り返りやすくなると思いました。 検索フィールド指定と検索語で、それぞれ単複どう指定…

Processor@IngestNodeについての一覧(Elasticsearch)

はじめに ElasticsearchのIngestNodeでのProcessorについて、現在のバージョン6.xで提供されている各編集機能を一覧にして逆引きしやすいようにしてみました。 寄り道の補足1 IngestNodeはインフラや非機能要件的にはポイントとなるお話があるとは思いますが…

Suggestersのシンタックス雰囲気まとめ (Elasticsearch)

はじめに Elasticsearchには、Suggestersといういわゆる検索BOXのオートコンプリート等に使える問い合わせのAPIがあるようです。 先人が様々なカタチで利用方法やTIPS等をまとめていただいています。 ただし、Suggerstersに限らないものの、製品がどんどん発…

顧客の本当に"探して"いたもの(検索UXとチューニング考察)

ソフトウェア開発の方面では、顧客の本当に欲しかったものという有名な風刺絵(?)があります。 https://www.google.com/search?q=顧客が本当に欲しかったもの 私はこのイラストで表現された「あるある」が非常に好きなのですが、最近、もう少し狭い範囲ですが…

検索サイトの検索ページのURL体系についての考察(Elasticsearchの製品哲学?の影響を受けた版)

はじめに 題名のとおり、検索サイトの検索ページのURL体系についての考察をしてみた。 バックエンドがElasticsearchでの検索を想定しており、ElasticsearchでのクエリDSLへの繋がりが良さそうなものを...という意味ではそうなのだが、"Elasticsearch"という…

Elasticsearchを検索サイトのアプリ屋視点でザクッとオーバービュー(公式リファレンスの検索関連注目)

はじめに 検索サイトの初学アプリ屋視点でElasticsearchがどんなものかザクッと知りたい・どんな感じのことができそうかという時がありませんか。 自分がググった範囲だと、シャードとかインフラ寄りの話、特定のユースケースに関する(非常に貴重ではあるが…