INFORMATION
テクノロジ

Apache Lucene 8.0.0 が公開されました!

Apache Lucene 8.0.0 が 2019 年 3 月 14 日に公開されました。

Apache Lucene は完全に Java で書かれたハイパフォーマンスな全文検索エンジンです。今回はメジャーアップデートが実施されたため,アップデートの内容が多岐に渡ります。本案内では,その中でも特徴的な機能や変更を以下に記します。

Lucene8.0 の特徴的なアップデート

  • TermQuery,PhraseQuery,BooleanQuery では,ランキング下位のドキュメントの正確なヒット件数を算出しないことで,クエリのレスポンスタイムが向上しました。特に TermQuery と OR 検索については一部レスポンスタイムが悪化したケースもありますが,ほとんどのクエリにおいて何倍も高速化されています。
  • 前項の改善によって,いくつかの API が更新されています

    • TopDocs.totalHits は正確なヒット件数を持つ long 型ではなく,少なくともこの件数はヒットしていると言った概算値を持つオブジェクトになりました。
    • ヒット件数を概算値で持つ改善はデフォルト設定となるため,IndexSearcher の search と searchAfter メソッドは 1000 件までは正確にヒット件数を計算し,これ以上のヒット件数の場合は概算値となります。
    • クエリのスコアは 0 以上にしなければなりません。

  • 正確なヒット件数が不要な場合の TermQuery の処理最適化のため,Postings(転置インデックスにおける単語に関連付いているドキュメントIDのリスト)に,最適化用データ(Skip Data)をインデックスするようになりました。
  • DocValues で jump tables を導入したことで,定数時間で読み込み時間が可能になりました。この実装によって,一部のドキュメントのフィールドにしか値が入っていないような,疎なフィールドの取得時間が改善されます。
  • FST 辞書が MMapDirectory を利用するようにしたことで,辞書オブジェクトがヒープ外にロードされるようになりました。これによってヒープの使用量を抑えられるようになりました。
  • 新設された FeatureField で PageRank のような固定値を保持できるようになり,これをスコアに反映できるようになりました。さらに,LongPoint#newDistanceFeatureQuery と LatLonPoint#newDistanceFeatureQuery を利用して,時間的・地理的な距離に応じたブーストを行えるようになりました。これらの新機能はトータルヒット件数の集計が不要な検索に最適化されています。例えば,PageRank がスコアに対して大きな重みを持っているのであれば,Lucene は低いページランク値を持っているドキュメントをスキップする場合もあります。

リリースの詳細と Lucene ダウンロードについて

すべての新機能および変更点に関しては CHANGES.txt を参照してください。
https://lucene.apache.org/core/8_0_0/changes/Changes.html

現在の最新の Lucene ダウンロードについては下記 URL を参照して下さい。
http://lucene.apache.org/core/mirrors-core-latest-redir.html


KandaSearch

KandaSearch はクラウド型企業向け検索エンジンサービスです。
オープンAPIでカスタマイズが自由にできます。

  • セマンティックサーチ

    人間が理解するように検索エンジンがテキストや画像を理解して検索できます。

  • クローラー

    検索対象文書を収集するWebクローラーが使えます。

  • 簡単操作のUIと豊富なライブラリー

    検索や辞書UIに加え、定義済み専門用語辞書/類義語辞書やプラグインがあります。

  • ローコードで低コスト導入

    検索UIで使い勝手を調整した後、Webアプリケーションを自動生成できます。

セミナー

企業が検索エンジンを選定する際のポイントから、
実際の導入デモをお客様ご自身でご体験!