タグ

全文検索に関するwate_wateのブックマーク (28)

  • 誰でもわかる全文検索入門

    全文検索エンジンも、事前に検索対象のデータを調べてこのような索引を作っておくことで、高速な検索を実現しています。 インターネット検索の例 たとえばインターネット検索の場合、まず各サイトからデータを収集して、その中から索引に載せる単語を選んで索引を作ります。索引のデータは下の図の右側のような表になっています。各単語と、それがどのサイトのどこにあったのかを記録しておく形です。 検索の時は、この索引データを調べます。例えば利用者が「理解」という言葉で検索したら、索引の「理解」のところを調べます。そうすると「サイトAの8文字目と18文字目、サイトGの……」と出現場所がわかるので、すぐに結果を返せます。 なお、この図では索引の単語の並び方が適当ですが、実際にはと同じように「あいうえお順」などに並べておいて、すぐに単語を見つけられるようにしてあります。 索引にない単語 この仕組みの場合、索引にある単

    誰でもわかる全文検索入門
  • A search engine in 80 lines of Python

    February 05, 2024 · 26 mins · 4728 words Discussion on HackerNews. Last September I hopped on board with Wallapop as a Search Data Scientist and since then part of my work has been working with Solr, an open source search engine based on Lucene. I’ve got the basics of how a search engine works, but I had this itch to understand it even better. So, I rolled up my sleeves and decided to build one fr

  • オンラインドキュメントと日本語全文検索

    自社では Sphinx というドキュメントツールを利用しているのですが、残念ながらこれに付属している検索機能の日語検索はかなり厳しいです。また残念ながら Sphinx 開発側も検索周りを改善するという予定は直近ではないようです。 そして検索というのはとても難しい技術なため自分のような素人では導入して「普通に期待する動作」をさせるまでの距離はとても遠いです。 ただ、なんとかして日語全文検索を実現したいという思いはここ10 年くらいずっと思っていました。これは自社の Sphinx テーマを作ってくれている社員ともよく話をしていたのですが、どうしてもリソースをつぎ込めずにいました。 まとめ日語検索に対応している Meilisearch を採用したドキュメントスクレイパーの実行は GItHub Actions (Self-hosted Runner) を採用した自社 Sphinx テーマの検

    オンラインドキュメントと日本語全文検索
  • Meilisearch

    The next generation of searchMeilisearch is a flexible and powerful user-focused search engine that can be added to any website or application. Lightning fastSearch-as-you-type returns answers in less than 50 milliseconds. That's faster than the blink of an eye!

    Meilisearch
  • オープンソース全文検索サーバー Fess

    利用環境 Apache ライセンスで提供 (フリーソフトなので、無料で利用可能) Java環境またはDocker環境で利用(OS非依存) OpenSearchまたはElasticsearchを検索エンジンとして利用 用途に応じて柔軟に対応可能な設計 クロール Web、ファイルシステム、Windows共有フォルダ、データベースをクロール MS Office(Word/Excel/PowerPoint) や PDF など多くのファイル形式に対応 リクエストヘッダーに情報付加、重複ドメインの設定、検索結果のパス変換 OCRなどの外部テキスト抽出対応

    オープンソース全文検索サーバー Fess
  • 発表資料: Elasticsearchによる 全文検索の実装 - Islands in the byte stream

    Rails Developers Meetup 2018 (#railsdm) で話した資料です。Railsの話はほとんどなくて、全文検索の仕組みとスコアリングについてのまとめが主です。 Q&Aシステムでの質問もここで回答します。 Q. データの同期はどうされていますか? 同期はActiveRecordのcallbackでActiveJobに更新jobを投げる形で非同期で行っています。また、データ構造などの更新がある場合にindex再構築するときのためのblue-green deployment用のバッチがあります。 Q. 何かgemを使われていますか?使われているなら、どんな選定理由ですか? いまはelasticsearch-railsを使っていますが、このエントリの後半にあるような理由で捨てようと思っています。移行先はまだ決めていません。 Q. 辞書を作ったりしていますか? Amazo

    発表資料: Elasticsearchによる 全文検索の実装 - Islands in the byte stream
  • Bing検索の裏側―BitFunnelのアルゴリズム - Hatena Developer Blog

    はてなアプリケーションエンジニアの id:takuya-a です。 この記事では、Microsoft の検索エンジン Bing で採用された BitFunnel アルゴリズムを紹介します。 昨年のエンジニアアドベントカレンダーでは、文字列検索のアルゴリズム全般について紹介しました(文字列アルゴリズムの学びかた - Hatena Developer Blog)。今年はそのなかでも、インデックス(索引)を使った全文検索アルゴリズムについてのお話になります。 この記事の前半は全文検索の入門にもなっていますので、検索技術になじみがない方にも楽しんでいただけるのではないでしょうか。 逆に、「そんなのもう知ってるよ!」という方は、題である「BitFunnel アルゴリズムの詳細」から目を通していただければと思います。 この記事は、はてなエンジニア Advent Calendar 2017の21日目の

    Bing検索の裏側―BitFunnelのアルゴリズム - Hatena Developer Blog
  • PostgreSQL Conference Japan 2017 - PGroonga 2 - PostgreSQLでの全文検索の決定版 #pgcon17j - 2017-11-07 - ククログ

    PostgreSQL Conference Japan 2017の前にPGroonga 2のリリースアナウンスを出せた須藤です。間に合ってよかった。 PostgreSQL Conference Japan 2017でPGroonga 2を紹介しました。PGroongaを使ったことがない人向けの内容です。実際、聞いてくれた人たちはほとんど使ったことがない人ばかりでした。 関連リンク: スライド(Rabbit Slide Show) スライド(SlideShare) リポジトリー 内容 PostgreSQLをバックエンドに「今っぽい」全文検索システムを作るためのPGroongaの使い方を紹介するという内容になっています。具体的には次の機能を実現する方法を紹介しています。 高速全文検索 それっぽい順でのソート 検索結果表示画面で検索キーワードをハイライト 検索結果表示画面で検索キーワード周辺テキ

    PostgreSQL Conference Japan 2017 - PGroonga 2 - PostgreSQLでの全文検索の決定版 #pgcon17j - 2017-11-07 - ククログ
  • PostgreSQLとPGroongaで作るPHPマニュアル高速全文検索システム - Kouhei Sutou - Rabbit Slide Show

    Description PHPマニュアルは日語にも翻訳されていますが、検索機能が限定的なため、せっかくの説明を活用しきれません。基の検索機能は関数やクラス名の検索機能しかないため「正規表現」で正規表現の使い方を検索できません。サイト内検索機能では「@」でエラー制御演算子を検索できません。 この講演ではPHPマニュアルをより活用するためのPHPマニュアル高速全文検索システムを紹介します。このシステムはPostgreSQLとPGroongaを利用して実現しています。 Page: 1 PostgreSQLとPGroongaで 作る PHPマニュアル 高速全文検索システム 須藤功平 クリアコード PHPカンファレンス2017 2017-10-08 PostgreSQLとPGroongaで 作る PHPマニュアル 高速全文検索システム Powered by Rabbit 2.2.2 Page:

    PostgreSQLとPGroongaで作るPHPマニュアル高速全文検索システム - Kouhei Sutou - Rabbit Slide Show
  • Redmineで高速に全文検索する方法 - 2016-04-11 - ククログ

    Redmineで全文検索するとかなり時間がかかります。 クリアコード社内でもRedmineを使用しており、全文検索が遅いことは以前から問題視していました。 最近Redmineでの全文検索を高速に実行できるようになるプラグインを開発したので紹介します1。 リンク先を見てもらえばわかるとおり、PostgreSQLMySQL(MariaDB)に対応しています。 それぞれPGroongaとMroongaを使用しています。 このプラグインを使うと、デフォルトの全文検索と比較して以下のメリットがあります。 高速 Ruby on RailsでPostgreSQLとPGroongaを使って日語全文検索を実現する方法 PostgreSQLで日語全文検索 - LIKEとpg_bigmとPGroonga Ruby on RailsMySQLとMroongaを使って日語全文検索を実現する方法 MySQL

    Redmineで高速に全文検索する方法 - 2016-04-11 - ククログ
  • Knowledge - 社内で使えるナレッジベース

    MOONGIFTはオープンソース・ソフトウェアを紹介するブログです。2021年07月16日で更新停止しました 社内のナレッジを蓄積するにはどこかに書きためる場所を用意しなければなりません。従来、この手の試みは悉く失敗しており、例えば掲示板であったりWikiであったり、Q&Aなどなかなか動かないと言った問題がありました。 もっとカジュアルにさくさく書ける仕組みが必要なのかも知れません。そこで使ってみたいのがKnowledge、その名の通り、知識を共有するシステムです。 Knowledgeの使い方 Knowledgeの特徴としては、記法にMarkdownを利用、記事のタイトル、文を全文検索できる、添付ファイル(検索対応)、公開範囲の設定があります。社内で立てて、個々人が好きな時にナレッジを共有したり、議事録を登録したりと言った使い方が便利そうです。 KnowledgeはJava製、Apach

    Knowledge - 社内で使えるナレッジベース
  • ElasticsearchのAnalyzerを理解するため全文検索の仕組みをシンプルに考える - $shibayu36->blog;

    Elasticsearchを使おうとしているとAnalyzerという概念が出てくるが、このAnalyzerという概念は最初理解することが難しかった。全文検索の仕組みを理解すれば分かるだろうと思い、https://speakerdeck.com/johtani/elasticsearchru-men?slide=5 やhttp://www.atmarkit.co.jp/ait/articles/1111/18/news148.html の記事などを読んで勉強してみたものの、こちらもいろんな言葉が出てきて非常に混乱した。例えば転置インデックス、tf-idf、トークナイズ、ストップワード、N-Gram、正規化などといった言葉が出てくる。 いろいろ調べてみて整理すると、全文検索の技術には、なぜ検索ができるかの話以外に、類似度の話、検索を高速に行うための話、あいまいな検索に対応する話など、いろんな話

    ElasticsearchのAnalyzerを理解するため全文検索の仕組みをシンプルに考える - $shibayu36->blog;
  • 第8回 Elasticsearchの基礎を学ぶ:聞いたら一生の宝,プログラミングの基礎の基礎 |gihyo.jp … 技術評論社

    はじめに みなさんこんにちは、teratail開発チームの橋佑介です。 昨今のWebサービスでは、以前のようにユーザが努力をして興味のあるコンテンツを探すサービスから、キュレーションサービスのようにユーザの興味を分析し配信することが重要とされています。 以前からも、ユーザの動向を分析するために、開発者はさまざまな手段を用いてユーザの興味に合った情報を配信することを実現してきましたが、得られるデータがユーザのサービス内のアクティビティのみだったため、決して精度が高いものとは言えませんでした。 現在では、莫大で多様なデータを取得することが可能になったため、ユーザの興味に近い情報を分析することが可能になりました。そのため、データをそのまま蓄積するだけではなく、各データに属性や情報を付与するなど、高度で柔軟性の高い検索・分析が行える全文検索システムに注目が集まっています。 Luceneという全文

    第8回 Elasticsearchの基礎を学ぶ:聞いたら一生の宝,プログラミングの基礎の基礎 |gihyo.jp … 技術評論社
  • オープンソース全文検索サーバー Fess

    利用環境 Apache ライセンスで提供 (フリーソフトなので、無料で利用可能) Java環境またはDocker環境で利用(OS非依存) OpenSearchまたはElasticsearchを検索エンジンとして利用 用途に応じて柔軟に対応可能な設計 クロール Web、ファイルシステム、Windows共有フォルダ、データベースをクロール MS Office(Word/Excel/PowerPoint) や PDF など多くのファイル形式に対応 リクエストヘッダーに情報付加、重複ドメインの設定、検索結果のパス変換 OCRなどの外部テキスト抽出対応

    オープンソース全文検索サーバー Fess
  • MroongaでGroongaの機能を使いこなす高度なテーブル設計をする方法 - CreateField Blog

    はじめに MySQL/MariaDBで高速に全文検索するためのオープンソースのストレージエンジンMroongaは、以下のように、Engine=Mroonga、FULLTEXT INDEX (${source_column})と書くだけで非常に簡単に全文検索を使い始めることができます。 CREATE TABLE memos ( id INT NOT NULL PRIMARY KEY, content TEXT NOT NULL, FULLTEXT INDEX (content) ) Engine=Mroonga DEFAULT CHARSET=utf8; 検索するときも以下のようにMATCH ... AGAINSTを使うだけです。 mysql> INSERT INTO memos VALUES (1, "1日の消費㌍は約2000㌔㌍"); Query OK, 1 row affected (

    MroongaでGroongaの機能を使いこなす高度なテーブル設計をする方法 - CreateField Blog
  • 作って覚える転置インデックス、「検索エンジン自作入門」 - プログラマでありたい

    先行発売で、検索エンジン自作入門を購入しました。まだペラペラと眺めている状況ですが、これが非常に面白いです。 「検索エンジン自作入門」は、集めた文章をいかに整理するかをテーマとして扱っているです。整理するという意味は、検索エンジンを利用するというライフハック的な意味ではありません。整理する為の検索エンジン自体を自分で作ることで理解するという、極めて硬派なです。 「検索エンジン自作入門」とは? 「検索エンジン自作入門」は、未踏IT人材発掘・育成事業にスーパークリエータに認定された山田浩之氏と、Senna/groongaの開発者の末永匡氏の共著です。検索エンジンについて語らせたら、日でこれ以上の人たちはいないだろうという組み合わせです。ということで、内容は非常に濃いのですが、難しい内容を解りやすく解説されています。 一方で、扱っている内容は非常にマニアックです。下に目次付けておくので見て

    作って覚える転置インデックス、「検索エンジン自作入門」 - プログラマでありたい
    wate_wate
    wate_wate 2014/09/22
    後で
  • 国産の全文検索エンジンGroonga vs 世界的流行のElasticsearch - CreateField Blog

    2014年4月21日は、第4回Elasticsearch勉強会ですね! http://elasticsearch.doorkeeper.jp/events/8865 第4回Elasticsearch勉強会は、参加希望者が約200名の大反響なようです。 私は勉強会に参加できないので、C言語で書かれた国産の高速な全文検索エンジンGroongaと、Javaで書かれた世界的に勢いのあるElasticsearchについて性能の比較をしたいと思います。 注意事項 今回の検証では1台あたりの馬力を比較するためにサーバ1台での全文検索性能について比較しています。 私は、Groonga(Mroonga)の利用暦が約2年であるのに対し、Elasticsearchの利用暦は2日です。このため、Elasticsearchに対するチューニングの不備や公平な比較になっていない点が含まれている可能性があります。 Ela

    国産の全文検索エンジンGroonga vs 世界的流行のElasticsearch - CreateField Blog
  • Mroongaを使って全文検索Webサービスを作ったときにはまったこと(第1回) - CreateField Blog

    前回のエントリに書いたように、1年半ほどをかけて、独学で特許の全文検索サービスを開発しました。 PatentField | 無料特許検索 最初は、MySQLを使ったこともない状態だったこともあり、かなり紆余曲折しました。Groonga開発チームの懇切な対応もあって、専用サーバ1台で最大で1千万レコード超、400GiB以上のサイズのテキストデータを高速に検索できるようになりました。 今後、何回かにわけて、Mroonga(Groonga)を使って全文検索Webサービスを作ったときにはまったこと、学んだことを全て書き出したいと思います。 全文検索エンジンMroongaとは? Mroongaは全文検索エンジンであるGroongaをベースとしたMySQL用のストレージエンジンです。Mroongaは、MySQLが使える人であれば、簡単に高速な全文検索機能が使えます。MariaDB10.0系にもバンドル

    Mroongaを使って全文検索Webサービスを作ったときにはまったこと(第1回) - CreateField Blog
  • Mroongaのラッパーモードからストレージモードに変えた理由 - CreateField Blog

    前回は、全文検索Webサービスを作ったときにはまったことの第1回という記事を書きました。 今回は、Mroongaを使って全文検索Webサービスを作ったときにはまったことの第2回として、ラッパーモードからストレージモードに変えた理由について書きたいと思います。 なお、かなり長く、MySQL、Groongaについて前提知識がないと理解できない部分が多々含まれている可能性があります。 ラッパーモードとは 全文検索Mroongaストレージエンジンでは、全文検索するためにラッパーモードとストレージモードの2つのモードが用意されています。 (引用) ラッパーモードでは全文検索機能のみGroongaの機能を利用し、データストアはInnoDBなど既存のストレージエンジンを利用します。ラッパーモードを利用することにより、ストレージエンジンとして多くの利用実績のあるInnoDBに全文検索エンジンとして実績のあ

    Mroongaのラッパーモードからストレージモードに変えた理由 - CreateField Blog
  • elasticsearchを全文検索サーバとして活用するなら読んでおきたい、6つのブログ記事をピックアップ(追記あり) - Y-Ken Studio

    LuceneベースのNoSQL全文検索サーバ、elasticsearchはログ解析の収集先として取り上げられることが多いですが、優れたNoSQL全文検索サーバでもあります。 日でも2013年末頃から続々とブログ記事や利用事例が増えている注目の技術でもあります。 今回は、その中で全文検索サーバとしての切り口で分かりやすく解説された6つの記事を紹介します。 (追記)Hello! Elasticsearch. — Medium ナレッジワークス株式会社のKunihiko Kidoさんによるとても分かりやすい記事です。 https://medium.com/hello-elasticsearch 2014年4月に入ってから怒濤の勢いでこれらのステキな記事が追加されています。 Elasticsearch Features — 主にシステムを中心とした特徴まとめ Elasticsearch Quic

    elasticsearchを全文検索サーバとして活用するなら読んでおきたい、6つのブログ記事をピックアップ(追記あり) - Y-Ken Studio