クラスタ構成のQdrantでsnapshotを作成/復元する

クラスタ構成のQdrantでsnapshotを復元する際のめも 前提 [重要] Qdrantはクラスタ構成であること。 面倒なことにQdrantは1ノードの構成なのかクラスタ構成なのかでsnapshotの復元方法が異なる。 環境 github.com 手順 collection作成~point追加 これを使っ…

docker composeでqdrantのクラスタ構成を構築する

ベクトル検索エンジンのqdrantをdocker-composeを使ってクラスタ構築した際のメモ。 結論 composeファイルはこんな感じ。 version: "3.9" services: qdrant_primary: image: "qdrant/qdrant:v1.4.1" ports: - "6333:6333" environment: QDRANT__CLUSTER__ENA…

max clause countの動的生成ロジック

背景 Elasticsearch8.0から indices.query.bool.max_clause_countがdeprercatedになりました。 これまで自分で設定できていましたが、動的に設定されるようになったということでどういうロジックで値が決まるのかコードを参照しながら確認します。 max claus…

Elasticsearchのmax clause countについて

普通につかっていると気にせず済むことは多いですが、たまに検索時のエラーの原因になるmax clause countについてまとめます。 max clause countの何が問題なのか そもそもmax clause countってなに? Boolean Queryに条件をいれすぎなければいいだけでは? …

Elasticsearchのスナップショットについて復習

この記事は Elastic Stack (Elasticsearch) Advent Calendar22日目の記事です。 今回はElasticsearchのスナップショットについて復習していきます。

ElasticsearchをIntelliJでデバッグできるようにする

Elasticsearchを基礎から理解しようシリーズです。 前回の回数を都度見に行くの面倒なので、今回から回数を数えるのをやめました。 目的 Elasticsearchのコードを読むのにデバッガーを使いたいのでIntelliJで設定していきます。 色々はじめてで詰まったので…

Elasticsearchの起動プロセスを追う

背景 もっとElasticsearchを理解できるように、基本から復習していきます。 (いつまで続くわからないけど)Elasticsearchを基礎から理解するシリーズ第3回はElasticsearchを起動プロセスを追ってみるです。 前回はlocalビルドして、JVMのオプションの設定をし…

Elasticsearchをlocalビルドで起動(その1)

背景 もっとElasticsearchを理解できるように、基本から復習していきます。 (いつまで続くわからないけど)Elasticsearchを基礎から理解するシリーズ第2回はElasticsearchを起動するです。 公式に提供されているDocker imageを使うことが推奨されていますが、…

Elasticsearchを理解するためにLuceneを使ってみる

背景 もっとElasticsearchを理解できるように、基本から復習していきます。 (いつまで続くわからないけど)Elasticsearchを基礎から理解するシリーズ第1回はLuceneを使ってみるです。 ElasticsearchはApache Luceneがベースになっているので、Elasticsearchを…

IntelliJ IDEAでmavenプロジェクトに依存ライブラリが import できないときの対処法

背景 タイトルどおりIntelliJ IDEAでmavenプロジェクト開発中に追加した依存ライブラリがimportできなかった。 とても単純な問題だったけど、はじめてのmavenでハマったので解決方法めも。

情報検索 :検索エンジンの実装と評価 15章の「Web検索」

「情報検索:検索エンジンの実装と評価」(Buttcher本) Advent Calendar2020の24日目の記事です。 adventar.org 情報検索 :検索エンジンの実装と評価 15章の「Web検索」をまとめます。 15章は広範なトピックについて扱っているため全体的にかいつまんでまとめ…

情報検索 :検索エンジンの実装と評価 5章の「クエリ処理」

「情報検索:検索エンジンの実装と評価」(Buttcher本) Advent Calendar2020の5日目の記事です。 adventar.org 情報検索 :検索エンジンの実装と評価 5章の「クエリ処理」をまとめます。 この章ではランキング検索と軽快な実装とよばれる手法についての説明され…

アプリの検索UI

はじめに 20個ほどの(Android)アプリの検索画面から共通している機能を分類しました。 ちなみに、筆者がデザイナー, アプリエンジニアではなくサーバーサイド中心にやっているエンジニアであることから、 今回は具体的なUIの話というより検索機能の視点での…

entity searchのメモ1

はじめに Entity-Oriented Searchの読書めも www.springer.com entityとは? 意味的には 参照可能なこと thing 参照可能なもの object e.g. 人、物、場所、商品、イベント 特徴として複雑性をもつ。 単語だけではなにを指しているのかわからないもの。 例え…

形態素解析辞書について

はじめに 形態素解析の辞書は色々あるので、知識整理のために主要なものをまとめました。 ただのメモです。 juman辞書 形態素解析システムjumanに含まれている辞書 システムと分離されているがjuman以外で使われてないので事実上juman専用 ipadic Chansen用…

Django template viewのリクエストから表示までの流れ

はじめに Class-based viewでのtempalteViewのリクエストからレンダリングまでの流れを調べた。 templateView TemplateViewはViewクラスをオーバライドしたテンプレートを表示するためのViewクラス。 実装は以下。 github.com templateViewのコードリーディ…

Python is と ==の違い

はじめに 会社のチームの勉強会でこの話題になったので調べてみたことのメモです。 まとめ pythonのisと==は違いがあるので注意する。 ちがい == オブジェクト同士が等価であるか判定する演算子。 つまり、等価=同じ値・同じ順番・同じ型のこと。 v1 = [1,2,…

飲酒プログラミング Advent Calendar 2019

はじめに なにやるか instagramのスクレイピング スクレイピングについて ログ スクリプト修正 リファクタ memo はじめに この記事は、「飲酒プログラミング Advent Calendar 2019」の12/22の回のログです。 と書いたのに、21時くらいに気づきました。 すで…

検索UXを考える

この記事は検索・検索エンジンのアドベントカレンダー6日目の記事です。 qiita.com はじめに 情報探索プロセス 行為遂行のサイクル 標準的な情報探索モデル ダイナミックモデル 情報検索でのユーザーの情報読み取りパターン 具体的な事例 特定のニュースが知…

ECS Canary deoloyをterraformで作成

TL;DR 目的 前提 構成 概略 説明 コード sample 参考 TL;DR ecsで構築したアプリケーションをCanary deployする構成を作ってterraformで構築します。 目的 ecsで構築するEC2起動タイプのアプリケーションをaws-sampleを参考にCanary deployできるよう設計を…

macにvscodeでterraform環境を整える

作業環境 手順 terraformインストール tfenvのインストール&設定 vscode設定 Extention インストール オートフォーマット設定 linterインストール 作業環境 macbook pro macOS mojave ver10.14.2 手順 terraformインストール terrformのインストールは, terr…

AmazonECSについて調べたメモ

はじめに Amazon ECSについていくつか調べたので自分用にメモ ECSとは Amazon Elastic Container Service(Amazon ECS) クラスタでDockerコンテナを簡単に実行、停止、管理できるスケーラブルで高速なコンテナ管理サービス。 ECSを使用することで以下のことが…

Amazon ECSの一般的なユースケースメモ

はじめに Amazon ECSの一般的なユースケースのドキュメントを読んだのでめも docs.aws.amazon.com ユースケース 一般的なユースケースは以下2つ。 マイクロサービス バッチジョブ マイクロサービス マイクロサービスは複雑なアプリケーションを小型で独立し…

入門自作検索エンジンの補足

PyConJPで発表したトークで、時間と資料の都合で飛ばしたところを備忘録も兼ねてブログに残していこうと思います。 ryook.hatenablog.jp スライドはこちら speakerdeck.com 全部書くには長すぎるので分割しながら徐々に追加していきます。 クエリパーサーに…

論理検索演算子を逆ポーランド記法で評価する

tl:dr 逆ポーランド記法とは 操車場アルゴリズム アルゴリズムの説明 処理例 python code tl:dr 論理検索を実現するために論理演算子を含むクエリを評価するのに逆ポーランド記法を使ったので、 忘備録を兼ねて、逆ポーランド記法の説明と操作上アルゴリズム…

PyConJPで登壇しました。

はじめに PyConJPとは? 発表した内容について 感想 準備 発表について 資料について はじめに 9/14 ~ 9/17に開催されたPyConJP2019に参加・登壇してきました。 開催から1週間経ってしまいましたが、登壇した感想を書いておこうと思います。 PyConJPとは? 9…

Burrows Wheeler変換(BWT)

tl:dr Burrows Wheeler変換(BWT)について調べためも Burrows Wheeler変換(BWT)とは 変換すると,似たような記号がたくさん並ぶようになる,文字列の可逆変換手法。 これ自体はデータのサイズは変更しないですが、圧縮しやすくなるのでデータ圧縮の前処理で使…

接尾辞配列

tl;dr 全文検索などで使われる接尾辞配列(suffix array)について調べたのでメモ 接尾辞配列とは 文書すべての位置から始まる部分文字列を辞書式順序で小さい順に並べ、その位置を格納したものです。 全文検索では接尾辞配列をインデックスとして利用すると、…

elasticsearch Index lifecycle policiesの使い方

Index lifecycle policiesとは 名前の通り、indexのライフサイクルを管理する機能です。 これまで外部からしかできなかったindexのライフサイクルの管理を設定できるようになりました。 https://www.elastic.co/guide/en/elasticsearch/reference/current/in…

sudachiの分割モードを複数使ってword2vecの精度を上げる

tl;dr 日本語でword2vecするには、学習用コーパスの分かち書きに大きく依存するけど、sudachiを使って複数の分割粒度を同時に使って学習したらいい感じになるよ。っていう論文があったので、pythonでやってみた。 論文紹介 「複数粒度の分割結果に基づく日本…