はてだBlog(仮称)

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

ソフトウェアの話かもしれない

Pythonのhttp.serverを使ってWebサーバの擬似不具合を再現するテスト用モックのようなドライバのような何か

Webクライアント側の例外処理のテストやそもそも挙動確認等で、サーバ側に多少奇妙な挙動、例えばHTTPヘッダーのある1項目を規定外のものにする、といったことをさせたいことはありませんか。 ただし、残りの99%部分は普通に動いて(いるようにみせかけて)…

Pandasのapply関連の書きっぷりバリエーションと処理時間の雑な傾向確認

PandasでDataFrameのカラムAの値とBの値を結合して、新たにC列を作りたい...てなことがよくあると思います。 普段は自分の中で可読性が高いと思っているapply系の手グセで記述しているのですが、まれに、他の言語やフレームワークに置き換えるまではいかない…

Elasticsearchにlivedoorレストランデータセットを取り込んでみる(Pandasで全文検索向けにプレデータ加工あり)

Elasitcsearchで「全文検索」寄りでいろいろ遊んでみようと思うと、程よい公開データが欲しくなります。 そんなデータの一例として、livedoorレストラン DataSetというのがありますので、こちらを利用させてもらって勉強するというのも一つの手かと思います…

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

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

Jinja(Jinja2)をさわってみる

Jinja(Jinja2) JinjaはPythonで動作するテンプレートエンジンです。 PythonのWAFのFlaskのデフォルトのテンプレートエンジンでもあるようです。 WAFとの結びつきが強いイメージなのでWebアプリでしか動作しないのかなと思っていたら、コマンドラインのPython…

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

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

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

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

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

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

Elasticsearch percolator再び

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

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

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

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

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

2018年のマイブックマークリストの棚卸し

2018年にマイWebブラウザでブックマークしたページ(かつブックマークした際に有効そうだと思って、時間がたっても依然として有効だとおもいつつ、一方で、まだしっかり読み込めていないもの*1のおさらいです。 分野は雑食ですが、やや実用テック系多め。 ま…

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

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

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

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

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

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

矛盾を表すコトバ

この人、何言ってやがるという時に感じる違和感の大半は、その人の発言とその人の行動のある種の矛盾からくるものが多いような気がする。 他人のとるにたらないミスを責める人は、むしろ大きな、周りにも迷惑のかかるミスをする。 別に相手の矛盾をついて、…

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

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

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

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

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

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

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"という…

Webサイトのコンテンツ移行のテスト(デジタルだけどアナログな世界) pyquery、requests

はじめに CMSを変更したり、おおよそ保持するテキストは変えないもののデザイン(htmlマーキングを含む意味)を変更した際に、現行の内容を移行漏れしていないことをざっくりテストしたいということはないだろうか。 この手のざっくり移行テストをするという…

Redmineのpluginの習作(wikiのマクロでsqlを発行し、それを埋め込む)

ことの経緯 Redmineのwikiページ中に、issuesテーブル等を特定の条件で検索して、それを一覧表示したいということがあったのだが、リッチなプラグインを探して試すよりも作成した方が早かったので作成してみた。 うろ覚えであるが、Redmineのwikiでオレオレ…

Elasticsearchのマッピングについての自分的まとめ

はじめに Elastisearchのマッピングの設定についてまとめてみた。 ここでは、typeやanalyzerなど他で詳しくとりまとめされているサイトがあるものは割愛し、その他の設定プロパティや、Dynamic Mapping(ダイナミックマッピング)、Index Template(インデッ…

サーチのUXチューニングとElasticsearchのmy覚書(まずはチューニングできる箇所の頭の整理)

はじめに(言い訳) 毎度、タイトルはでかく出たものの、その割になにか分からない感じですが、簡単に言うと、Elasticsearchで検索サイトを構築する時に、一発でなかなかうまくいかないこともあろうでしょうから、その時にどこをチューニングするかという話…

ストレスツールvegetaとオレオレストレスツールのメモ

ストレスツールといえば、ab、jmeter、gatlingなどといろいろあるようだが、例えば既存サイトのアクセスログ一式があるとして、このアクセス負荷を再現する&できるだけ深く考えたくない&実際どのような負荷がかかっているか・サーバが応答したのかをトレー…

2万回のA/Bテストからわかった 支持されるWebデザイン事例集感想

2万回のA/Bテストからわかった 支持されるWebデザイン事例集作者: 鬼石真裕,KAIZEN TEAM出版社/メーカー: 技術評論社発売日: 2018/07/25メディア: 単行本(ソフトカバー)この商品を含むブログ (1件) を見る 自分にとって良かった点 感想というか自分にとっ…

SQLについて、俗なユーザが思うことつれづれ(シンタックスとか): ひとことでいうとFROM(ON やJOIN含む)、WHERE、GROUP BY、HAVING、SELECT(→ ORDER BY)の順に解釈する

SQLのシンタックス(の背景にある考え方) SQLって関数的なのはスバラシイが、なんかもやもやする。 これはSQLが何をどう扱うかという次のことが分からなかったから。 表(リレーション)の演算、集合の演算 FROM(ON やJOIN含む)、WHERE、GROUP BY、HAVING…