サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
Pixel 9
blog.johtani.info
本記事は情報検索・検索技術 Advent Calendar 2022の9日目の記事です。 だいぶ間が空いてしまいましたが、日本語のオートコンプリートに関する記事の続きです。 という感じで、Suggesterのデータ構造とか仕組みを書こうと思っていたのですが、思ったよりも調べないといけないことが多くて挫折しました。。。 (これの続きは年末年始で調べて書くはず?) ということで、代わりにElasticsearch/OpenSearchのアーキテクチャの変更に関してさらっとまとめてお茶を濁してみようと思います。 発端はElasticON Tokyo? 先週の11月30日に、ElasticのオフラインイベントであるElasticON Tokyoが開催され参加しました。 参加しようと思ったのは、10月の頭にElasticのブログで公開された「Stateless — your new state of
風のうわさで、日本語用のオートコンプリートのためのTokenFilterとAnalyzerがLuceneに取り込まれたと聞きました(LUCENE-10102)。 Elasticsearchでも使えるかなぁ?ということで調べたところ(調べた?聞いた?)、どうやら8.1から利用できるようになっている(GitHub Issue #81858)みたいです(まだ、公式ドキュメントには記載がないのですが)。 8/17追記 作者の打田さんがブログ書いてたの見落としてた(もしくは見たけど忘れてた)ので貼っておきます。マルチテナンシー下での Query Auto Completion 設計・運用戦略 - LegalForce Engineering Blog ということで、こんな感じで使えるよというのを試してみました。 どういうもの? 日本語入力方法を考慮したオートコンプリート用のトークンを生成してくれるT
今年の頭からシステムの検索周りを手伝う仕事をフリーランスとしてやっています。 検索の仕組みを知れば知るほど面白くなってきたからという理由になるのかな? LuceneやSolr、Elasticsearchなどを長く触っているというのもあるかと思います。 ということで、検索についていつも考えています。 頭の中でまとまっていない状況ですが、システムにおける検索機能についていくつか頭の中にあることを書き出して、 いろんな方にダメ出しやコメントをもらいたいなと思ったので、色々と書いてみようかと。 思いつきのままに書いているので、はなしがあちこち飛ぶ可能性もありますが、あしからず。 検索って難しい 「「検索」とは、データの集合から目的のデータを探し出すこと」By Wikipedia 一言で「検索」といっても、使う人、ユースケースによっていろいろな「検索」があります。 例えば、新しいスマホを買ったときに
先日、Elasticsearchでのカスタム辞書の利用方法についてブログを書きました。 辞書の設定方法について記載しましたが、今回は辞書の更新について書いていなかったので、書いてみようと思います。 ここで「辞書」としているのは、Kuromojiのユーザー辞書、Synonym Graph Token FilterのSynonym辞書(いわゆる類義語辞書)のことになります。サードパーティのAnalyzer等に関する話ではありません。 辞書更新に関する制限事項 辞書の更新について、大原則と制限事項が存在します。 大原則(辞書の更新=データも更新) ElasticsearchはAnalyzerが切り出した単語を元に転置インデックスを作成して、検索を行っています(この仕組みに関するスライドはこちらを参照のこと)。 Analyzerが辞書を持っている場合、その辞書を元に単語を切り出して転置インデックス
Elasticsearchで日本語を扱うときに、カスタム辞書を使いたいという要望がよくあります。 AWSのElasticsearch Serviceでカスタム辞書ファイルを読み込める機能が発表されたようです。 実は、Elasticsearchの7.4からファイルを使用しなくても日本語のTokenizerでカスタム辞書を利用することができるようになっています。 カスタム辞書をインデックスの設定で指定 やり方はドキュメントに記載があります。 トークナイザーの設定をインデックスの設定に記述しますが、このときに user_dictionary_rulesという設定を利用することでカスタム辞書を指定できます。 PUT custom_dic_sample { "settings": { "index": { "analysis": { "tokenizer": { "kuromoji_user_dic
また、ツイートから始まるお話です。 まだまだ、検索システムってどんなものかを勉強したいしということで、こんなのをツイートしてました。 「検索システム探訪」みたいな名前がいいかな? https://t.co/sG7BDdGI9h — Jun Ohtani (@johtani) February 6, 2020 検索について知り合いとお茶をしながら話をしていて、こういう話を聞くの面白いなぁと思ったので。 どんなことを個人的には聞きたいかな?というのをまとめといたほうがいいかと思いブログを書いています。 こんなことも面白そうだよね? どんなこと聞きたいかな? いまのところ思いついた内容はこんな感じかな? こんなのも聞くと面白そうだよね?などありましたら、コメント欄に書いてもらえればと。 利用しているシステム・サービスは? 構成やどこのサービスなのか? 検索ユーザーはどんな人? ユーザーの種類 ユ
Posted by johtani on Wednesday, December 18, 2019 ドットファイル系(.emacsとか)をこれまでは、PCを引っ越すたびにコピーしてたんですが、いいかげん、GitHubとかで管理したいなと。 で、ツイートしたところ(こればっかりだなw)、homeshick(homesick)が便利だよとの情報を得たので使ってみました。 homesick、正確にいうとhomeshickを使ってます。悪くないです — 🤓k.bigwheel🤓 (@k_bigwheel) December 10, 2019 使い方とか 実物はGitHubで公開されていました。 https://github.com/andsens/homeshick 何者かというと、ホームディレクトリにあるドットファイル(.zshrcなど)をgitコマンドで管理するのを楽にしてくれるシェルの関
本日、Elasticでの最終出社日でした。実際の退職日はまだ先ですが、有休消化という感じです。 思い返せばもう5年と5ヶ月も前ですが、Elastic(当時はElasticsearchって社名だった)に参加しました。 社名も変わりましたし、プロダクトの数も増えたし、IPOもしました。 初の外資+スタートアップということもあり、ものすごくエキサイティングな5年半でした。 Elasticを離れはしますが、検索自体にはまだまだ興味があるので、LuceneやElasticsearchになにかしら関わる感じのことをする予定です。 検索技術勉強会も今後もやっていきますし。 ただ、激動の5年半だったので、退職日までちょっとゆっくりしようと思っています。 次にどんなことをするのかはまた、別の機会にでも。 おまけ ということで、まぁお約束です。 ほしい物リストはこちら ← Previous Post Next
あけましておめでとうございます。今年はサボりがちだったブログをちょっとずつ復活させようかと。 ということで、第1弾として、昨年少し作っていたKibanaのプラグインを何度かに分けて紹介したいと思います。 今回はAnalyze UIというプラグインの紹介です。 今回はインストール方法と簡単な機能紹介です。 細かな紹介は個別にやりたいと思います。 Analyze UI pluginとは? Elasticsearchの_analyzeというAPI�(個人的に好きなAPIです)をご存知でしょうか? Elasticsearchは全文検索エンジンで、データの検索には転置インデックスというものを使用します。 Elasticsearchにデータを登録する際に、text型のデータの場合、この転置インデックスのキーとなる単語を決める処理のことをAnalysisと呼びます(Analysisの詳細については割愛し
Swiftypeでサイト内検索? プレスリリース:Elasticがサイト内検索サービス最大手のSwiftypeを買収が出ましたが、SwiftypeチームがElasticにジョインしました! 自分のブログ検索に導入してみる? SwiftypeはSite Searchをサービスとして提供しています。 実際に指定したサイトのデータをクロールして、インデキシングし、検索できるようになります。 ものは試しということで、自分のブログを登録してみました。検索窓はつけてないですが。 14日間のFree trialがあるのでそちらで試してみましょう。 検索窓はデモとか作れたらかな。 ということで、Free trialへ まずはユーザ登録です。Googleのアカウントと連携するか、Swiftypeにメルアドを登録するかが選択できます。 登録できたら、次にどちらのプロダクトを使うかという選択画面が出てきます。
Elastic stack Advent Calendar 1日目の記事になります。 Elasticsearch 5.0が10月末にリリースされました。 リリースのブログでいくつか紹介されているのですが、そこでは紹介されていない機能について2、3紹介しようと思います。 その前に、5.0、あれ?その前は2.xじゃなかったっけ??と困惑されている方もいるかと思うので、簡単に5となった経緯の紹介をしようかと。 バージョン番号 なぜ2から5に飛んだのかという話ですが、このスライドがその紹介になっています。 https://speakerdeck.com/johtani/elastic-stack-5-dot-0-alpha1-alpha5?slide=5 Elastic{ON} 2016のキーノートでも紹介がありましたが、KibanaやLogstashとElasticsearchを組み合わせて使う
Lucene Kuromoji for NEologdで指定した品詞の単語を抜き出すIngest Pluginを書いてみた #elasticsearchjp 久しぶりに、技術的なブログ書いてます。 Ingest Processorのプラグインを作ってみたくなったので、書いてみました。 ただ書いてみるんじゃ3番煎じになりそうなので、cookiecutterを使ってみました。 と言っても、同僚のAlexがcookiecutter-elasticsearch-ingest-processorと言うテンプレートを作ってくれているのを使っただけですが。(https://discuss.elastic.co に投稿された記事で、使い方がアニメgifで説明されててわかりやすいです) cookiecutterとは、コマンドラインで質問に答えると、テンプレートからプロジェクトが生成できるツールです。 Ela
第16回Elasticsearch勉強会を開催しました。 スタッフの皆さん、スピーカーの皆さん、会場提供していただいたリクルートテクノロジーズさん、ありがとうございました! 今回は、司会だけに注力してみました()。 チェックイン数など チェックインした人:141名 キャンセルしなかった人:67名 でした。 今回は、参加希望者が多くて、当日にも100名近いキャンセル待ちの方がいたので、 240名まで、参加者枠を増枠(会場キャパ190名程度)して対応しました。 まぁ、読み通り、1/3の方はキャンセルしない形でした。 天気も良く電車の遅延などもなさそうだったので、ちょっとドキドキしてたのですが。 以下は簡単なメモです。 「LogstashとElasticsearchで作るEnterprise Search Platform」/ Elastic Kosho Owa スライド:https://spe
第15回Elasticsearch勉強会を開催しました。 スタッフの皆さん、スピーカーの皆さん、会場提供していただいたリクルートテクノロジーズさん、ありがとうございました! 今回は、Elastic{on} 2016開催直後ということで、大半はElastic{on}に関する話でした。 チェックイン数など チェックインした人:114名 キャンセルしなかった人:62名 でした。 今回は、少しおそめで1時間前にキャンセル待ちがいない状態にしました。 まぁ、いつもの感じでしょうか。数値も安定してきた感じですかね。 “Elasticsearchと機械学習を実際に連携させる” / Preferred Networks America, Inc. CTO 久保田展行(Kubota Nobuyuki) さん スライド:Elasticsearchと機械学習を実際に連携させる 前回の続きの話で、今回が本題でした
あけましておめでとうございます、johtaniです。 第14回Elasticsearch勉強会を開催しました。 スタッフの皆さん、スピーカーの皆さん、会場提供していただいたリクルートテクノロジーズさん、ありがとうございました! 今年もよろしくお願いします!参加していただき盛り上げていただいた参加者の皆さんもありがとうございました。 チェックイン数など チェックインした人:122名 キャンセルしなかった人:58名 でした。 今回も当日の昼の時点でキャンセル待ちがない状態にしていました。 いくつか電車が止まっていたという話を聞いていたので、開始を5分遅らせ、 受付は45分くらいまで開けておくという対応をしてもらいました。 “ココが辛いよelasticsearch” / 株式会社リクルートテクノロジー @tatakaba さん スライド:ココが辛いよelasticsearch 実際にいくつかのサ
今年最後のAdvent Calendarとなります。 この記事はElasticsearch Advent Calendar 2015の最終日のエントリです。 簡単に今年の変遷を、Elasticsearchをベースに振り返ってみようかと思います。 Kibana 4リリース(2月) Kibana 4(日本語訳) いきなり、Elasticsearchではない話題ですが。 AggregationベースのKibanaがリリースされました。 画面が黒くないというので、話題になりましたw 12月末時点では、4.3.1になっています。 Sub Aggregationによる強力なグラフ表示や異なるインデックスに対するグラフを 一つのダッシュボードに表示できるといったことができるようになりました。 セキュリティ向けプラグインShieldのリリース(2月) セキュリティ向けプラグインShieldのリリース(日本
こんにちは、@johtaniです。 早いもので、師走です。今年もあと少しとなりました(今月が一番忙しかったりしますが。。。)。 ということで、Advent Calendarの季節が始まりました。 この記事はElasticsearch Advent Calendar 2015の1日目のエントリです。 今日は、最近公開されたTimelionの紹介をしたいと思います。 Timelion? 11/12に公開されたばかりのアプリになります。(公式のブログはこちら。ブログでは動画による説明もあり) Kibanaにプラグインとしてインストールすることで使用することができるようになるアプリです。 Timelionと書いて「Timeline」と読むようです。 Kibanaとは異なるグラフ描画のプラグインになっています。 Kibana 4.2からプラットフォーム化 Kibana 4.2から、Kibanaにプラ
※この記事は次のブログを翻訳したものになります。 原文:The Story of Sense - Announcing Sense 2.0.0-beta1 誕生 よくある良いプロジェクト同様、Senseもビールを飲みながら考えつきました。 Amstelでの手漕ぎボートのセッションの後で。 友人のJasperと私はJasperの会社で毎年行われる ハッカソンについて話をしていました。 このハッカソンはどのようなアイデアでどんなチームで行うかを聞き取りされる、厳密なハッカソンです。 その時、私とJasperはChromeブラウザに別のヒストリーを表示するという作業をやるとAnne Velingに話をしていました。 Jasperと私はElasticsearchのユーザでしたが、リッチなREST APIにリクエストを送信するための 便利なツールがないと知っていました。 恥ずべきことに、cURLコマ
第13回Elasticsearch勉強会を開催しました。 スタッフの皆さん、スピーカーの皆さん、会場提供していただいたリクルートテクノロジーズさん、ありがとうございました! 来年もよろしくお願いします!参加していただき盛り上げていただいた参加者の皆さんもありがとうございました。 7月同様、サムライズムの@yusukeさんに テキスト翻訳していただき、大変助かりました。 チェックイン数など チェックインした人:100名 キャンセルしなかった人:36名 でした。 今回は当日の時点でキャンセル待ちがない状態にしていました。 雨もあって、これなかった人もいるのでしょうか。 “Beyond the basics with Elasticsearch” / Honza Král / Elastic スライド:https://speakerdeck.com/elasticsearch/beyond-th
※この記事は次のブログを翻訳したものになります。 原文:Elasticsearch 2.0.0 GA released Elasticsearch 1.0.0のリリース以降、 477のコミッター2,799のpull requestがあった、 **Elasticsearch 2.0.0 GA(Lucene 5.2.1ベース)**をリリースしました。 それだけでなく、Shield(セキュリティプラグイン)とWatcher(アラーティングプラグイン)、 新しくなったMarvel(モニタリングプラグイン)(プロダクション環境でフリー!)、 また、新しくオープンソースとなったSense editorの2.0.0もリリースしました。 Elasticsearch 2.0.0のダウンロードはこちらから。 また、2.0.0での重要な変更点についてはこちらをご覧ください。 全ての変更点については、次をご覧くだ
※この記事は次のブログを翻訳したものになります。 原文:Relase, we have ※画像に関しては原文をご覧ください。 Elasticにとって大きな1日(社内では「release bonanza」と呼んでいる)です。 多くの主要なプロダクトを新たにリリースしました。 そして、本日、それらを一緒に利用する時にそれらを一緒に利用する時にユーザの体験についてまとめてみました。 次の通りです。 Elasticsearch 2.0リリース。 大きなマイルストーン、チームによる改善、そして、コミュニティからの素晴らしい貢献。 Pipeline Aggsと呼ばれる新しいタイプのaggregations、 クエリとフィルタのコンセプトを統合することにより簡素化されたクエリDSL、 better compressionオプション、 JavaのSecurity Managerを有効にすることによる強化さ
※この記事は次のブログを翻訳したものになります。 原文:Elasticsearch 2.0.0-beta2 released 本日(9/17)、Lucene 5.2.1ベースのElasticsearch 2.0.0-beta2をリリースしました。 本リリースが2.0.0のRCの前の最後のベータリリースになります。 注意事項 本リリースはベータリリースであり、テストを目的としたものとなります。 Elasticsearch 2.0.0-beta2はElasticsearch 2.0.0-beta1と互換がありません。 また、Elasticsearch 2.0.0 GAと互換性があるかどうかの保証はありません。 本番環境には利用しないでください。 Elasticsearch 2.0.0-beta2のダウンロードおよび、すべての変更についてはリンクをごらんください。 2.0.0-beta1をテスト
※この記事は次のブログを翻訳したものになります。 原文:Elasticsearch unplugged - Networking changes in 2.0 Elasticsearchをローカルのマシンで起動します。 そして、昨日試したデータを削除するためにDELETE *を実行します。 すると、悲しそうな叫びを同僚が発していることに気づき、なぜそんなことになっているのか不思議に思うでしょう。。。 Elasticsearchはいつも、親しみやすいものでした。 複数ノードのクラスタがどのように機能するのかをテストするには、 ローカルのマシンでいくつかのElasticsearchのインスタンスを起動するだけでした。 起動したインスタンスはマルチキャストを利用して自動的にお互いを見つけて、1つのクラスタになり、負荷を共有し始めます。 しかし、これは親しみやすすぎました。 カンファレンスなどで、
※この記事は次のブログを翻訳したものになります。 原文:Elasticsearch 2.0.0-beta1 released 本日(8/26)、Lucene 5.2.1ベースのElasticsearch 2.0.0-beta1をリリースしました。 本リリースは469名のコミッターからの2,500以上ものpull requestを含んでいます。 pull requestのうち、約850が2.0のための新規のものとなります。 注意事項 本リリースはベータリリースであり、テストを目的としたものとなります。 Elasticsearch 2.0.0-beta1は Elasticsearch 2.0.0 GAと互換性があるかどうかの保証はありません。 本番環境には利用しないでください。 Elasticsearch 2.0.0-beta1のダウンロードおよび、すべての変更についてはリンクをごらんください
第11回Elasticsearch勉強会を開催しました。 スタッフの皆さん、スピーカーの皆さん、会場提供していただいたリクルートテクノロジーズさん、そして、Shayありがとうございました! 次回もよろしくお願いします!参加していただき盛り上げていただいた参加者の皆さんもありがとうございました。 今回は、CTOのShayが来日していたので、英語でいろいろと喋ってもらいました。 4月同様、サムライズムの@yusukeさんに テキスト翻訳していただき、大変助かりました。 今回はQAベースのトークだったのでちょっときつかったですね、申し訳ない。。。 チェックイン数など チェックインした人:141名 キャンセルしなかった人:51名 でした。 今回はあらかじめ220名(全員が来たらキャパオーバー)としていたので、キャンセル待ちの人は 当日の午後にはいなくなっていた状態です。まぁ、こんなもんかな。結構入
※この記事は次のブログを翻訳したものになります。 原文:Elasticsearch 1.7.0 and 1.6.1 released 本日(7/16)、Lucene 4.10.4ベースのElasticsearch 1.7.0およびElasticsearch 1.6.1 のバグフィックス版をリリースしました。 これらのリリースはセキュリティフィックスを含んでおり、すべてのユーザにアップグレードを推奨します。 ダウンロードおよびすべての変更については次のリンクをごらんください。 最新安定版:Elasticsearch 1.7.0 1.6系バグフィックス:Elasticsearch 1.6.1 1.7.0が1.x系の最後のリリースとなります。 今後の新機能については、Elasticsearch 2.0以降で取り込まれる予定です。 Elasticsearch 1.7.0は小さなリリースですが、2つ
東京以外での勉強会の第2弾として、関西で勉強会を開催してきました。 Elasticsearch勉強会 in 大阪 Elasticsearch勉強会 in 京都 会場提供をしていただいた、Yahoo!大阪、はてなのみなさん、ご協力ありがとうございました! ここからはいつものメモです。 ちなみに、大阪の勉強会に、@takuya_aさんと@5kozawaさんの両名にお越しいただき話をしていただきました。 なので、勉強会の内容はほぼ同一になります。 Introduction Elastic @johtani スライド:Introduction Elasticsearch 初めての関西での勉強会ということで、ElasticsearchのOSSおよび商用プラグインの紹介をしてきました。 もちろん、Kibanaのデモもちょっとだけ。スプラトゥーンに関するデータをKibanaでちょっとだけ。 突貫でデータ
※この記事は次のブログを翻訳したものになります。 原文:The Great Mapping Refactoring Elasticsearchのユーザの悩みの最も大きなものの一つは、 タイプとフィールドのマッピングに関する多義性です。 この多義性は、インデックス時の例外やクエリ時の例外、 正しくない結果、リクエストからリクエストへ変化する結果、 また、インデックスの故障やデータのロスを結果として引き起こします。 Elasticsearchをより強固で予測可能な振る舞いをするようにする作業において、 フィールドやタイプのマッピングをより厳格でより信頼性を高くするかといったことに 多くの変更を費やしました。 多くのケースで、Elasticsearch v2.0で新しいインデックスを作るときにのみ、 新しいルールを強制し、これまでのインデックスに関しては後方互換性を保つようにします。 しかし、幾
※この記事は次のブログを翻訳したものになります。 原文:Elasticsearch 2.0.0.beta1 coming soon! Elasticsearch 2.0.0.beta1のリリースの準備をしています。 これは、Lucene 5.2.1に含まれる多くの改善が利用できるようになります。 このリリースに関するいくつかの機能は次のようなものです。 Pipeline Aggregations 差分や移動平均、他のAggregationsの結果に対する series arithmeticのようなaggregationが利用可能になります。 この機能は、これまでは、クライアントサイドで実行する必要がありました。 しかし、この計算をより強力な解析クエリを構築してElasticsearchで 実行することができるようになります。 クライアントのコードをより簡潔にすることができます。 これにより
次のページ
このページを最初にブックマークしてみませんか?
『@johtaniの日記 3rd | @johtaniの日記 3rd | @johtani's blog 3rd edition』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く