namazu-ml(avocado)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: 中間一致の検索について



古川と申します。

>> On Wed, 6 Jan 1999 20:25:14 +0900, Yokoi <yokoi@xxxxxxxxx> said:
  > 「大型小売店」という文字が含まれたファイルをnamazuコマンドで検索したいと
  > 考えています。
  > 「大型小売店」としてnamazuコマンドで検索すればマッチしますが、
  > 「*大型小売店*」としてnamazuコマンドで検索するとマッチしてくれません。

  > 現在、検索したい文字列の前後に常に*を追加して、中間一致の検索をした結果を
  > 利用するプログラムを作成しているのですが、何か対処方法はありませんか?

正規の namazu では、普通はできません。(参考 [namazu:01669])

いま思いつくやりかたは、2 つあります。


(1) 無条件で前後に '*' をつけるのではなく、語がどのようにわかち書きされ
    るかを調べておく。

「大型小売店」を kakasi -w に通すと「大型 小売店」のように分かれますか
ら、このようなケースでは、「*大型小売店*」はマッチしない、と予想できます。

これを踏まえて
    大型小売店
    {大型 小売店}
    *大型 小売店*
などとして検索すれば、マッチするはずです。(3 つめのは、フレーズとしては
扱われません)


(2) perl 版の検索クライアントを使う。

contrib にある pnamazu では、「*大型小売店*」は、ちゃんと
    {*大型 小売店*}
として扱われ、フレーズ検索もできます。

ただし、mknmz しただけの状態で、これを検索しようとすると、すごく時間が
かかるので、同梱の bwnmz.pl というスクリプトで、後方/中間一致用のデータ
ベースを作っておいたほうがよいでしょう。


話は変わって、

>> On Thu, 7 Jan 1999 16:53:11 +0900, Yokoi <yokoi@xxxxxxxxx> said:
  > mknmzで-uPMXのオプションをつけて作成したインデックスを使って
  > namazu 大型小売店 . と実行してみたところ、
  > ===ここから
  > 検索結果

  > 参考ヒット数: ./NMZ.p: cannot open file.
  >  (フレーズ検索用インデックスが開けませんでした)

  > 検索式にマッチする文書はありませんでした。
  > ===ここまで
  > と表示されました。

-P は「フレーズ検索用のインデックスを作成『しない』」というオプション
だったりします。


-- 

                                        ヤマハ(株)ピアノプレーヤ設計課
                                                              古川 令
                                             furukawa@xxxxxxxxxxxxxxxx