タグ

2020年9月22日のブックマーク (13件)

  • タグ検索するならPostgreSQLで決まり!

    (Last Updated On: 2018年8月13日)PostgreSQL Advent Calender 2013、13日目のエントリです。 表題の通り「タグ検索するならPostgreSQLで決まり!」です。 追記:JSONの場合はPostgreSQLのJSONB型を利用してタグ検索を行うを参照 RDBはタグが苦手 WebアプリではRDBでは取り扱いづらいデータを取り扱う事がよくあります。タグの管理・検索はその一つです。 RDBはタグ情報の管理・検索をしっかりやれますが、どちらかと言うと苦手な分野です。しかし、PostgreSQLの 配列 GIN(Generalized Inverse Index – 転置インデックス) を使うと簡単かつ高速に処理できます。 PostgreSQLを使うとタグ検索が簡単・高速に実現できますが、Googleで「タグ検索 PostgreSQL」と検索しても

    タグ検索するならPostgreSQLで決まり!
  • XMLに検索インデックスを貼って便利に使えるPostgreSQL - それマグで!

    XML をデータベースに入れるのが面倒 XMLをDBのテーブルスキーマに変換して、INSERT文書くのって面倒じゃん? テーブルスキーマを考えるのが面倒 XMLの拡張性の良さが死ぬ DBに入れてないデータが欠損する NULL処理どうすんの 単純にSQLに変換して、データベースに突っ込むまでは、カンタンだし全然オッケーなんだ。でもXMLってそういう用途じゃないよね。 で、XMLをいつも XMLカラムに保存してるんだけど、SQLXpath使えたら便利じゃん? なんと、PostgreSQLならSQLXpathが使える。 最初これを見つけた時に、嘘だろと思ったんですが、実際に試してみました。 postgreSQL の準備をして、いざ実験 XML 型を使う テーブルのカラムのタイプにXML 型というそのものズバッとのタイプがあったので、それを使うことにした CREATE TABLE sample

    XMLに検索インデックスを貼って便利に使えるPostgreSQL - それマグで!
    sh19910711
    sh19910711 2020/09/22
    using gin / "create index name_samle on sample using gin (( xpath('//name/text()' , books)::text[] ));"
  • gqlgen でのキャッシュ性能向上を考えてみる - 病みつきエンジニアブログ

    NewsDigest ではアプリの BFF として GraphQL を使っていて、ライブラリとしては gqlgen を使ってます。で、なるべく CDN でのキャッシュヒット率を上げたいなぁということで、 gqlgen でできることをプロトタイプしてみました。 github.com 前提として、 Apollo とかは使ってなくて、curl でのコンセプトレベルの検証 僕は Go を書く力が弱い 頭の体操であって、実戦投入したものではない 1: Persisted Query をつかう まず、Persisted Query を使います。 Add File-based Persisted Query · yamitzky/example-gqlgen-cached@5917721 · GitHub Persisted Query は、簡単に言うと、クエリ自体をハッシュ文字列(0123456789

    gqlgen でのキャッシュ性能向上を考えてみる - 病みつきエンジニアブログ
  • Elasticsearchの圧縮方式の比較 - Taste of Tech Topics

    こんにちは。 2年目エンジニアのノムラです。 普段はElasticStackを用いた分析基盤の開発等を行っています。 Elasticsearchを使っているとストレージの使用量を節約したいと思う方は多いのではないでしょうか。 Elasticsearchはデータを格納するときにデフォルトでLZ4という圧縮方式でデータ圧縮を行っていますが、 実はLZ4よりも圧縮率の高いbest_compressionという圧縮方式を利用することもできます。 このbest_compressionは圧縮率が高い分、検索時にはLZ4よりも遅くなると言われるのですが、 実際にどれくらいデータサイズに違いがあるのか、検索速度の違いはどれくらいになるのかが 実はよく分かりません。 ということで今回はこの2つの圧縮方式のデータサイズと検索速度への影響を比較してみました。 目次は以下になります 環境情報 バージョン情報 準備

    Elasticsearchの圧縮方式の比較 - Taste of Tech Topics
    sh19910711
    sh19910711 2020/09/22
    "Elasticsearchはデータを格納するときにデフォルトでLZ4という圧縮方式でデータ圧縮を行っていますが、実はLZ4よりも圧縮率の高いbest_compressionという圧縮方式を利用することもできます"
  • ElasticsearchのScroll APIをためしてみた - 平日インプット週末アウトプットぶろぐ

    気になっていたElasticsearchのScroll APIの使用感を記録します。最近の開発でScroll APIを採用したい欲求がありましたが、使用感を調べる前で採用は見送りました。このままだと気になったまま使わないことになりそうなので、この機会にまとめます。 www.elastic.co ※ version 2.4をつかいました。 Scroll APIは通常のSearch requestのoffset/limitでページング取得をしないため処理中のデータ抜けが防げるメリットがあります。またScroll APIは初回リクエスト時の結果をスナップショットすることで安定した応答速度を担保します。 スナップショットをとるためリアルタイムのデータ処理の利用には向いていません。(スナップショットの挙動について試してみたので後述しています) どんなふうに使うか? 通常のクエリとscroll=1mを

    ElasticsearchのScroll APIをためしてみた - 平日インプット週末アウトプットぶろぐ
    sh19910711
    sh19910711 2020/09/22
    "Scroll APIは初回リクエスト時の結果をスナップショットすることで安定した応答速度を担保 / スナップショットをとるためリアルタイムのデータ処理の利用には向いていません"
  • Elasticsearchと機械学習を利用したbot基盤

    Project for Public Spaces & National Center for Biking and Walking•6.9K views

    Elasticsearchと機械学習を利用したbot基盤
  • HiveからElasticsearchに接続してみる - たけぞう瀕死ブログ

    仕事ではElasticsearchを使っているのですが、それ以外にGitやS3に大量のJSONがあり、これをElasticsearchを組み合わせた検索ができないものかと思い、先日1.0がリリースされたばかりのApache Drillを試しています。 ただし、Drillは現時点ではElasticsearchをサポートしておらず、Elasticsearch側でもDrillのサポートは提供されていません。そこで、Hive経由でElasticsearchにDrillからアクセスできないものかと考えてみました。 Hiveのインストール まずはHiveを実行できるようにします。 HadoopとHiveのディストリビューションを取得して適当なディレクトリに展開し、環境変数HADOOP_HOMEにHadoopを展開したディレクトリのパスを指定しておきます。また、Hiveではデフォルトでは/user/hi

    HiveからElasticsearchに接続してみる - たけぞう瀕死ブログ
    sh19910711
    sh19910711 2020/09/22
    org.elasticsearch.hadoop.hive.EsStorageHandler
  • ElasticsearchのIngest Nodeを試す - CLOVER🍀

    これは、なにをしたくて書いたもの? Filebeatを見ていて、パイプラインやモジュールを覚えようと思うと、Ingest Nodeを知らなければいけないなぁと思い。 ちょっと、Ingest Nodeを試してみることにしました。 環境 今回の環境は、こちら。 $ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 18.04.3 LTS Release: 18.04 Codename: bionic $ java --version openjdk 11.0.4 2019-07-16 OpenJDK Runtime Environment (build 11.0.4+11-post-Ubuntu-1ubuntu218.04.3) OpenJDK 64-Bit Serve

    ElasticsearchのIngest Nodeを試す - CLOVER🍀
  • グラフニューラルネットワークの表現力 - Google ドライブ

    ログイン読み込んでいます…

    グラフニューラルネットワークの表現力 - Google ドライブ
  • 「どこまで湘南?」を地理学的に考える

    是政 @koremasakai 「あなたの考える湘南の範囲を線で囲ってください」みたいなメンタルマップ?を何かで見たことあったな。そういうので調べてみたいところ 2018-06-24 08:34:00

    「どこまで湘南?」を地理学的に考える
  • 僕はポケモンをやらない - ポケモンカードGBの話|keigo

    最初のポケモンが世に出たとき、すでにその対象の世代から大きく外れていた僕は、ポケモンをやったことがない。 そんな僕が、なぜかゲームボーイの”ポケモンカードGB”(1998)というゲームだけはよく遊んだ。どうしてポケモンのカードゲームに興味を持ったのか、記憶も定かではない。当時携帯ゲーム機を持っていなかったため、黄色いボディのゲームボーイカラー体と、ポケモンカードGBのカセットを安い値段で手に入れて遊び始めたのだけは覚えている。唐突にそんな思い出が蘇ってきたので、少し文章にまとめてみた。 ポケモンカードGBは、当時トレーディングカードゲーム(TCG)として売り出されていたポケモンカード(1996~)をゲームボーイのソフトとして逆輸入する形でゲーム化されていたタイトルだ。 ルールは、やはり当時人気が出ていたカードゲーム”マジック・ザ・ギャザリング”(1993~)をよりシンプルに、よりスピーデ

    僕はポケモンをやらない - ポケモンカードGBの話|keigo
    sh19910711
    sh19910711 2020/09/22
    "ポケモンを草むらから探し出さなくても、カードバトルでカードとして手に入れればいいので、無駄に歩き回らなくていい。とにかくバトルをして、手に入れたカードでデッキを組んでいけばいいだけ"
  • mixi Engineers' Blog » 検索クエリログからのスペル訂正辞書の自動生成

    この検索ログを表す表において、一列目はユーザID を二列目、三列目はそれぞれクエリ文、クエリが発行された時間を表します。たとえば、上記の例の一行目はユーザ 438904 が二千九年十一月二十一日午前十一時十六分十二秒に ‘Suversion’ というクエリで検索したことを示しています。 検索ログで実現できること 前節で紹介したような検索ログが大量に得られると、スペル(字面)訂正辞書を自動生成することができます。ここでスペル訂正辞書とは、各要素がスペルミスを含む単語と正しいスペルの単語のペアからなる辞書です。以下スペル訂正辞書の一例です。 pthon python レz− レザ− このようなスペル訂正辞書を用いることで、Yahoo!Google で提供されている did you mean (もしかして) サービスが可能になります。Did you mean サービスとはユーザがスペルミス

    sh19910711
    sh19910711 2020/09/22
    did you mean
  • ElasticsearchでRettyのサジェスト検索を作ったときの苦労話 - Qiita

    この記事はRetty Inc. Advent Calendar 2017 14日目です。 こんにちは!Rettyで検索を担当している@r4-keisukeです。 昨日は@akiさんの多言語リソース管理がめんどくさいので、どうにかして楽がしたいと思った話 iOS編でした。 去年はAthenaを早速試してみたとElasticsearchのスコアリングを眺めてみるを書きました。 今日は、Elasticsearchでサジェスト機能を構築して運用しながら直面した難点の話を語っていきたいと思います。もしこれからサジェスト機能を実装する予定の方々に少しでも役に立てれば幸いです。 前置き 実務で体験したものを中心にした記述になりますので、例え方がかなり地域・飲店などに偏る可能性があります。 私自身、外国出身で日生活は10年目に突入したもので、日語自体に対する理解が不足してるところもあるかと思いますが

    ElasticsearchでRettyのサジェスト検索を作ったときの苦労話 - Qiita
    sh19910711
    sh19910711 2020/09/22
    "データの整備やユーザさんの使い方をウォッチしてニーズに応えられる機能改善、新しい辞書やシノニム対応などなど、手のかかる子ですが、ユーザさんの反応が非常にわかりやすく、その質も厳しく問われる"