寺西です。 (2011/07/06 4:18), 小田切亘 wrote: > 次の段階として、検索方法の2段目に書いたように、複数項目による絞込み検索をで > きないか検討しています。
問題点をあまり理解できていませんが、 「複数項目による絞込み検索」ということでしたら AND 検索を 行うということになるかと思います。 > 検索結果として > 「活動分類項目」が00で 且つ > 「主な活動場所」が05で 且つ > 「対象地域」が11 である > ような、「複数の条件の検索」結果をヒットさせたいのです。 いろいろ方法はあるかと思いますが、ぱっと思いつく方法としては フィールド検索ですね。 「活動分類項目」、「主な活動場所」、「対象地域」をそれぞれ フィールド情報としてインデックスを作成すればお望みの検索は 可能かと思います。 もう少し書くと、検索したい文書ファイルそれぞれに、 genre、place、area といった属性(フィールド)を付けることにして、 各文書ファイルにフィールド値を設定します。 その文書ファイルから インデックスを作成することで、NMZ.field.genere*, NMZ.field.place*, NMZ.field.area* といったファイルを作成します。 検索時には、「キーワード」と各フィールドで検索した値を AND 検索 すれば良いので、検索式は キーワード +genere:00 +place:05 +area:11 になります。この加工した検索式を namazu.cgi に渡します。 そうすると、キーワードを含む文書で、genere フィールドの値が 00 で place フィールドの値が 05 で、area フィールドの値が 11 の文書を 検索することができます。 なお、「活動分類項目」が「すべて」の場合は、genere フィールド 検索を省いて キーワード +place:05 +area:11 という検索式になるように加工して namazu.cgi に渡します。 これらの検索式の加工は、JavaScript で行っても良いですし、ラッパ CGI等を作っても良いかと思います。 # この辺りは Namazu というよりは、JavaScript とか、CGI の話に # なるので、そちらのジャンルでお調べ下さい。 で、問題になるのは、どうやって各文書にフィールド値を与えるかと いうことですが、元文書が HTML なら簡単に仕込むことができます。 例えば <html> <head> <meta name="genere" content="00"> <meta name="place" content="05"> <meta name="area" content="11"> </head> <body> : のようにしてフィールド値をMetaタグで仕込みます。 次に mknmzrc の $META_TAGS を次のように変更します。 $META_TAGS = "genere|place|area"; そして、インデックス作成時に mknmz に -M オプションを指定すると、 各 HTML の meta タグで指定した genere, place, area フィールド値 から、NMZ.field.genere*, NMZ.field.place*, NMZ.field.area* を 含むインデックスが作成できます。 元文書が HTML でない場合にフィールド情報を仕込む手段はいろいろ ありますが、長くなるのでここでの説明は省略します。 -- ===================================================================== 寺西 忠勝(TADAMASA TERANISHI) yw3t-t...@asahi-net.or.jp http://www.asahi-net.or.jp/~yw3t-trns/index.htm Key fingerprint = 474E 4D93 8E97 11F6 662D 8A42 17F5 52F4 10E7 D14E _______________________________________________ Namazu-users-ja mailing list Namazu-users-ja@namazu.org http://www.namazu.org/cgi-bin/mailman/listinfo/namazu-users-ja