[Groonga-commit] groonga/groonga at be99a8f [master] Really fix a bug that sort in similar search

Back to archive index

Kouhei Sutou null+****@clear*****
Fri Sep 5 22:46:21 JST 2014


Kouhei Sutou	2014-09-05 22:46:21 +0900 (Fri, 05 Sep 2014)

  New Revision: be99a8fc10dd752250c3cb9097c50a4ea3e49a73
  https://github.com/groonga/groonga/commit/be99a8fc10dd752250c3cb9097c50a4ea3e49a73

  Message:
    Really fix a bug that sort in similar search
    
    [groonga-dev,02754]
    
    Reported by warp kawada. Thanks!!!

  Modified files:
    lib/ii.c
    test/command/suite/select/filter/similar/match.expected

  Modified: lib/ii.c (+1 -1)
===================================================================
--- lib/ii.c    2014-09-05 17:11:00 +0900 (38f27b0)
+++ lib/ii.c    2014-09-05 22:46:21 +0900 (81e7196)
@@ -5703,7 +5703,7 @@ grn_ii_similar_search(grn_ctx *ctx, grn_ii *ii,
     grn_ii_posting *pos;
     grn_wv_mode wvm = grn_wv_none;
     grn_table_sort_optarg arg = {
-      GRN_TABLE_SORT_DESC|GRN_TABLE_SORT_BY_VALUE,
+      GRN_TABLE_SORT_DESC|GRN_TABLE_SORT_BY_VALUE|GRN_TABLE_SORT_AS_NUMBER,
       NULL,
       NULL,
       0

  Modified: test/command/suite/select/filter/similar/match.expected (+6 -11)
===================================================================
--- test/command/suite/select/filter/similar/match.expected    2014-09-05 17:11:00 +0900 (4bfd0a0)
+++ test/command/suite/select/filter/similar/match.expected    2014-09-05 22:46:21 +0900 (6804053)
@@ -30,7 +30,7 @@ select Documents --filter 'content *S "MySQLで全文検索"' --output_columns '
   [
     [
       [
-        4
+        3
       ],
       [
         [
@@ -48,22 +48,17 @@ select Documents --filter 'content *S "MySQLで全文検索"' --output_columns '
       ],
       [
         "groonga の概要",
-        349526,
+        419432,
         "groonga は転置索引を用いた高速・高精度な全文検索エンジンであり、登録された文書をすぐに検索結果に反映できます。また、参照をブロックせずに更新できることから、即時更新の必要なアプリケーションにおいても高い性能を発揮します。\n\n全文検索エンジンとして開発された groonga ですが、独自のカラムストアを持つ列指向のデータベースとしての側面も持っています。そのため、MySQL や PostgreSQL など、既存の代表的なデータベースが苦手とする集計クエリを高速に処理できるという特徴があり、組み合わせによって弱点を補うような使い方もできます。\n\ngroonga の基本機能は C ライブラリとして提供されていますが、MySQL や PostgreSQL と連携させたり、Ruby から呼び出したりすることもできます。そのため、任意のアプリ
 ケーã‚
 ·ãƒ§ãƒ³ã«çµ„み込むことが可能であり、多様な使い方が考えられます。 興味のある方は 利用例 をご覧ください。"
       ],
       [
-        "全文検索と即時更新",
-        524289,
-        "一般的なデータベースにおいては、追加・削除などの操作がすぐに反映されます。一方、全文検索においては、転置索引が逐次更新の難しいデータ構造であることから、文書の追加・削除に対応しないエンジンが少なくありません。\n\nこれに対し、転置索引を用いた全文検索エンジンでありながら、groonga は文書を短時間で追加・削除することができます。その上、更新しながらでも検索できるという優れた特徴を持っているため、全文検索エンジンとしてはとても柔軟性があります。また、複数の転置索引を統合するような重い処理を必要としないので、安定して高い性能を発揮することが期待できます。"
-      ],
-      [
-        "転置索引とトークナイザ",
-        524289,
-        "転置索引は大規模な全文検索に用いられる伝統的なデータ構造です。転置索引を用いた全文検索エンジンでは、文書を追加するときに索引語を記録しておき、検索するときはクエリを索引語に分割して出現文書を求めます。そのため、文書やクエリから索引語を抜き出す方法が重要になります。\n\nトークナイザは、文字列から索引語を抜き出すモジュールです。日本語を対象とする全文検索においては、形態素を索引語として抜き出す方式と文字 N-gram を抜き出す方式のいずれか、あるいは両方を用いるのが一般的です。形態素方式は検索時間や索引サイズの面で優れているほか、検索結果に不要な文書が含まれにくいという利点を持っています。一方、N-gram 方式には検索漏れが発生しにくいという利点があり、状況によってé
 ©ã—た
 方式を選択することが望ましいとされています。\n\ngroonga は形態素方式と N-gram 方式の両方に対応しています。初期状態で利用できるトークナイザは空白を区切り文字として用いる方式と N-gram 方式のみですが、形態素解析器 MeCab を組み込んだときは MeCab による分かち書きの結果を用いる形態素方式が有効になります。トークナイザはプラグインとして追加できるため、特徴的なキーワードのみを索引語として採用するなど、独自のトークナイザを開発することが可能です。"
+        "共有可能なストレージと参照ロックフリー",
+        209716,
+        "CPU のマルチコア化が進んでいるため、同時に複数のクエリを実行したり、一つのクエリを複数のスレッドで実行したりすることの重要性はますます高まっています。\n\ngroonga のストレージは、複数のスレッド・プロセスで共有することができます。また、参照ロックフリーなデータ構造を採用しているため、更新クエリを実行している状況でも参照クエリを実行することができます。参照クエリを実行できる状態を維持しながら更新クエリを実行できるので、リアルタイムなシステムに適しています。さらには、MySQL を介して更新クエリを実行している最中に groonga の HTTP サーバを介して参照クエリを実行するなど、多彩な運用が可能となっています。"
       ],
       [
         "groonga ストレージエンジン",
-        174763,
+        419432,
         "groonga は独自のカラムストアを持つ列指向のデータベースとしての側面を持っていますが、既存の RDBMS のストレージエンジンとして利用することもできます。たとえば、groonga をベースとする MySQL のストレージエンジンとして mroonga が開発されています。mroonga は MySQL のプラグインとして動的にロードすることが可能であり、groonga のカラムストアをストレージとして利用したり、全文検索エンジンとして groonga を MyISAM や InnoDB と連携させたりすることができます。groonga 単体での利用、およびに MyISAM, InnoDB との連携には一長一短があるので、用途に応じて適切な組み合わせを選ぶことが大切です。詳しくは 関連プロジェクト を参照してください。"
       ]
     ]
-------------- next part --------------
HTML����������������������������...
Download 



More information about the Groonga-commit mailing list
Back to archive index