[Namazu-users-ja 1309] sort by date patch in field search

WATANABE Katsuhiro katsu @ watanabe.name
2015年 7月 13日 (月) 13:36:07 JST


渡辺克宏と申します。

namazu2.0.21のフィールド検索で、検索結果の日付によるソートが動作していな
いかに見えます。解決策を提案申し上げます。

単語検索においては、このような問題はないと思われます。

[再現]
1. http://search.namazu.orgに行く。
(v2.0.20との表示がありますが、2.0.21でも同様の手順で再現できます。)

2. 以下の検索条件を入力し、Search!ボタンを押す。
検索式: +subject:/00/
表示件数: 20
表示形式: 標準
ソート: 日付(新しい順)
検索対象: Namazu-users-ja(新) のみにチェック。

検索結果が数件出るが、期待に反して日付の新しい順にならないことを確認。

3. 検索条件を以下のように修正し、Search!ボタンを押す
ソート:日付(古い順)

検索結果が数件出るが、期待に反して日付の古い順にならないことを確認。

検索式として単に "00"と入力して単語検索を行ったときの結果と比較してくだ
さい。単語検索では、日付で意図通りソートされるはずです。
ここで"00"という指定は本質的ではなく、数量が絞り込まれた検索結果を得るた
めの無意味な記号に過ぎません。

[修正例]
以下のパッチを適用してみてください。これで当方ではバージョンをまたいで数
年間動いています。

*** nmz/re.c.orig       Fri Jun 26 00:07:57 2015
--- nmz/re.c    Mon Jul 13 10:35:54 2015
***************
*** 272,277 ****
--- 272,278 ----
                  }
                  val.data[n-1].docid = i;
                  val.data[n-1].score = 1;  /* score = 1 */
+                 val.data[n-1].date = data.date;
                  val.num = n;
              }


インデックスファイルの形式や内容、あるいはmknmzは、問題点とは無関係で
す。検索側の問題です。したがって、修正にあたって既存のインデックスはその
まま使えて、再生成しなくてよいはずです。



みなさんのご意見をくださいませ。よろしくお願いいたします。

-- 
渡辺克宏
http://katsu.watanabe.name


Namazu-users-ja メーリングリストの案内