namazu-ml(avocado)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: 中間一致の検索について
- From: Rei FURUKAWA <furukawa@xxxxxxxxxxxxxxxx>
- Date: Thu, 7 Jan 1999 18:03:38 +0900
- X-ml-name: namazu
- X-mail-count: 01851
古川と申します。
>> 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