はてだBlog(仮称)

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

検索サイト

spaCy2.3の日本語標準対応にのっかってホットワード抽出の真似事(ただし候補ワード・フレーズ抜き出しまで)

spaCyがver 2.3になって、デフォルトで日本語に対応したようです。 spacy.io ということで、何日か前に、GiNZAスゲーとなった感謝の気持ちは忘れないながらも、フリーライダーな私としては、裸のspaCy2.3に乗り換えて、まずは雰囲気を掴んでみようということ…

pandas.read_htmlでぶち抜きtableタグに関する今更の気づき

pandas.read_htmlについて、rowspanやcolspanで実現されているぶち抜き表についても、よろしく整然データとしてのDataFrameに変換できるということを知ったので、その感想です。 pandas.read_htmlについて pandas.read_htmlはhtml中のtableに特化したスクレ…

Elasticsearch のMore Like This Queryを使ってみた(グルメ的に似たエリアを検索)

Elasticsearch のMore Like This Query(以下MLT)を使ってみました。 More Like This Query(MLT)について MLTの類似度の考え方(の雑な説明) Elasticsearch MLT での実際の検索方法 [補足] MLTはElasticsearch 検索DSLの一種 ★実際にやってみる 前説 手順 (1)…

Elasticsearch GEO系検索を試してみる(Geo-polygon、Geo-shape関連)

ElasticsearchのGEO系検索のうち、ポリゴンをからめた検索について試してみました。 www.elastic.co なお、試したのはElasticsearch 6.8ですが、7系に橋渡ししやすいクエリやMapping設定の記述としたつもりです。ただし、紙面の都合・その他の理由によりでve…

Elasticsearch のバルクロード用JSON Lines ファイルをselectする toy スクリプト

概要 Elasticsearchのバルクロードは次の形式なのですが、ふと必要にかられてこんな形の2行1ペアのJSON Linesファイルから、なんちゃってselectを行うトイプログラムを作成してみました。 PUT hockey/_bulk?refresh {"index":{"_id":1}} {"first":"johnny","…

BeutifulSoupでお手軽DOMツリーのテキスト出力

はじめに Python、BeautifulSoupふと思い出し企画です。 Pythonのスクレイピングライブラリである、BeutifulSoup4 についてオレオレ切り口でちょっとだけふれています。 BeautifulSoup4やScrapyというキーワードで言うと、スクレイピングやそもそものクロー…

Elasticsearch のFunction score queryで得られたスコアに後付けで細工する

はじめに 何度目かのElasticsearchのオレオレスコアリング論まとめです。 この記事をまとめるきっかけとして、Elasticsearch ver7系におけるScript score queryなるもので、今までできなかった(?)BM25などから得られた関連度に細工ができるようで、これは知…

続・Elasticsearchのひらがなでの検索時のトリックについて雑談(漢字ひらがな混在の場合について深掘り と  Multiplexer filterの練習もかねて)

はじめに この記事は、次の記事の続きです。 itdepends.hateblo.jp 前の記事では、ひらがな(読み仮名)→漢字にフォーカスしましたが、ここでは、ひらがなの単語の複合語や漢字とひらがなの混合の複合語などででヒットさせるにはということで膨らませてみま…

Elasticsearchのひらがなでの検索時のトリックについて雑談

はじめに Elasticsearch(kuromoji)では、アナライザーに「kuromoji_readingform」というものがあり、これを使うと「読み」に関して、表記揺れや曖昧検索相当に対応できます。 ただし、この「読み」部分については、実は、kuromojiの形態素解析(分かち書き/to…

Elasticsearchで読みの頭文字で並び替える怠惰な方法の例(just idea)

1. はじめに この記事は、ある検索系の問題設定において、できるだけElasticsearchの機能に閉じて*1手軽にやれるかどうか、という、よくある100本ノック風のチャレンジ(1本だけですが)のメモです。 図らずも、Elasticsearchのアナライズの解説っぽいところ…

検索エンジンでのルックアップ検索型方式に関する講釈とdis_max、constant_score(Elasticsearchを題材に)

はじめに 検索エンジンのスコアリング・チューニングは「関連度」がキモ...だが... このブログの前の記事で、「BM25」のような情報検索における関連度について、「使わせていただく立場」として載自分なりの講釈を述べてみました。 itdepends.hateblo.jp 関…

BM25を分かった気になるかもしれない邪道な解説(?)

1. はじめに このブログではElasticsearchについて時々思い出したように書きなぐっております。 そしてこの記事では、Elasticsearchのデフォルトのスコアリング方式であるBM25について、数式が苦手でも、なんとなく分かった気になる(かもしれない)解説を試…

Pandas文学論なんちて

はじめに Pandasで遊んでいて、便利だなーと思う一方で、Pandasでのある種のDSLとしての記法やライブラリをうまく使えばもっとシンプルに、かつ可読性(ここでは、ビジネスルールとデータクレンジングなどのための前処理(の前処理)をうまく分離したもの)…

Elasticsearchの検索スコアリング(boost_mode、score_modeのsumとmultiplyの噛み合わせについてもう少し)

はじめに この記事は次の記事のちょっとだけ補足(つづき)です。 itdepends.hateblo.jp 記事の概要 前の記事では、ひとことでいうとスコアリングは文字通り加点方針(条件に該当するとプラスが重なる方針)がオススメみたいなところを示唆しておりました。 …

Elasticsearchの検索スコアリングの見定めに関する考察

はじめに この記事は次の記事のアナザーバージョン(切り口は少し違うが同じことを別の表現で表したもの)です。 itdepends.hateblo.jp itdepends.hateblo.jp とあるタイプの検索サイトのElasticsearchを使ったサービス設計などに関する私見(2019年改訂版) …

検索サイトの検索メニューまわりでしばしば議論されるかもしれない画面遷移パターンなどに関する自分まとめ

はじめに 検索サイトの検索への導線を議論している時に、これはこのパターンだね〜のような意見交換の際に、特に定義しなくても意思疎通がしやすいようなボキャブラリーってなんじゃろなと考えたものを雑多にまとめてみました。 「やっぱ、XX検索は、シンプ…

PandasをElasticsearch検索インデクサープレ処理ETLに見立てた場合の「設計の共有」のためのモジュールファイル分割・分配方針

はじめに 最近Python、Pandasに入門していろいろ遊びながら、ETLにおける「設計の共有」が捗る&しかけってなんだろうなと思案しております。 ETLは汚れ仕事も多いので、他の分野以上にある種のスパゲティ化しがちで、実際はそうではなくとも、時が経ってな…

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内の座標を持つドキュメン…

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

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

検索サイトであるあるかもしれないインデックスimport前のドキュメント標準化をざっくり試すためのPython/Pandasのイディオムメモ

はじめに 検索サイトで、Elasticsearchなどの検索エンジンにデータを雑に食わせるにあたり、この用途にPandasが手頃(Pandasはもっとリッチなことができるはずだといった話はさておき)なような気がしてきので、サンプルコードを作成してみました。 この記事…

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

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

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

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

3分で分かる(ことを目標にした)Adobe XDの使い方速習メモ(邪道編 福笑い手法)

はじめに 本職のデザイナーさんはいるけど、いろいろあってエンジニアとしての自分もAdobe XDをちょっとさわる必要がある、あるいは検索UX担当としてイケてるツールでお絵かきしたい。 (というか、PowerPointや神EXCELは少し休みたい) ... という時に、さ…

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

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

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

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

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

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