• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:pdf の検索に namazu などを使うメリット)

pdfの検索にnamazuなどを使うメリットとは?

oshiete_poo_V1の回答

回答No.2

質問に対する回答はNo1のおっしゃっている通りと思いますが、 これではNamazuがあまりにも不憫な気がします。 > Namazu を文字化けせず使うためには $ sudo update-locale …   sudoしなければならないような特権は必要ありません   適切に運用すれば文字化けしません > どのやり方でもまずpdf を txt化しておかねばなりません。   ドキュメントの通りにすればpdfからindexを生成することができます。 > ファイル名からやっかいな空白   スペースがあるファイルもちゃんとNamazuで検索できます。 一方、デメリットの追加: ・Namazuで検索する(インデックスを構築する)のとgrepでは結果が異なる可能性があります。 ・groongaの方は運用次第でインデックス構築方法を変更できる。 原因についてはgroongaのマニュアルに(理解できるかどうかはさておき)書いてありますが、ここでは結果が異なる可能性があると言う事実だけ知っておけば十分でしょう。

noname#214079
質問者

お礼

ありがとうございます。 > > Namazu を文字化けせず使うためには $ sudo update-locale … >  sudoしなければならないような特権は必要ありません >  適切に運用すれば文字化けしません これは私の環境に起因する問題なのでしょうか。 $ sudo update-locale LANG=ja_JP.UTF-8 LANGUAGE="ja_JP:ja" $ update-locale LANG=ja_JP.UTF-8 LANGUAGE="ja_JP:ja" bash: update-locale: コマンドが見つかりません となって、UTF-8 をロケールに設定している状態では次のようになります。 $ mknmz -c ../s1 �����оݤΥե�������Ĵ�٤Ƥ��ޤ�... 1�ĤΥե����뤬�����ǥå����������оݤȤ��Ƹ��Ĥ����ޤ��� 1/1 - /home/ykok/Desktop/nmz/database-dir/../s1/Namazu.pdf Unable to convert pdf file (maybe copying protection) [����] ����: Mon Dec 15 08:53:46 2014 �狼������: /usr/bin/chasen -i e -j -F "%m " �����ƥ�: linux Perl: 5.014002 Namazu: 2.0.21 $ mknmz -b ../s1 �����оݤΥե�������Ĵ�٤Ƥ��ޤ�... 1�ĤΥե����뤬�����ǥå����������оݤȤ��Ƹ��Ĥ����ޤ��� 1/1 - /home/ykok/Desktop/nmz/database-dir/../s1/Namazu.pdf Unable to convert pdf file (maybe copying protection) [����] ����: Mon Dec 15 08:57:07 2014 �狼������: no �����ƥ�: linux Perl: 5.014002 Namazu: 2.0.21 $ mknmz -k ../s1 Can't locate Text/Kakasi.pm in @INC (@INC contains: /usr/sha re/namazu/filter /usr/share/namazu/pl . /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl) at /usr/bin/mknmz line 956. $ mknmz -m ../s1 �����оݤΥե�������Ĵ�٤Ƥ��ޤ�... 1�ĤΥե����뤬�����ǥå����������оݤȤ��Ƹ��Ĥ����ޤ��� 1/1 - /home/ykok/Desktop/nmz/database-dir/../s1/Namazu.pdf Unable to convert pdf file (maybe copying protection) [����] ����: Mon Dec 15 08:58:10 2014 �狼������: /usr/bin/chasen -i e -j -F "%m %H\n" �����ƥ�: linux Perl: 5.014002 Namazu: 2.0.21 > > どのやり方でもまずpdf を txt化しておかねばなりません。 >  ドキュメントの通りにすればpdfからindexを生成することができます。 下記のようになったので pdf を txt化しておかねばならないと思ったのですが、 もう少し http://www.namazu.org/doc/manual.html などを読み込んでみます。 $ ls -l ../s1 合計 360 -rwxrwxrwx 1 ykok ykok 363259 12月 15 08:34 N amazu.pdf $ mknmz -c ../s1 検索対象のファイルを調べています... 1個のファイルがインデックス作成の対象として見つかりました 1/1 - /home/ykok/Desktop/nmz/database-dir/../s1/N%20amazu.pdf Unable to convert pdf file (maybe copying protection) [基本] 日付: Mon Dec 15 09:22:24 2014 わかち書き: /usr/bin/chasen -i e -j -F "%m " システム: linux Perl: 5.014002 Namazu: 2.0.21

noname#214079
質問者

補足

$ namazu -v namazu of Namazu 2.0.21 Copyright (C) 1997-1999 Satoru Takabayashi All rights reserved. Copyright (C) 2000-2011 Namazu Project All rights reserved. This is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

関連するQ&A

  • ファイルを検索して削除する

    /www 以下のディレクトリーに aaa.txt というファイルが存在する場合、 そのファイルが存在するディレクトリー内の全ての ***.txt を削除したいです。 find /www -name aaa.txt | xargs rm だと、aaa.txt だけの削除になります。 以下も考えましたが、これだと検索対象ディレクトリーが /www だけになります。 #!/bin/bash if test -e /www/aaa.txt then rm -f /www/*.txt fi どのように記述するとよいでしょうか。

  • unixのfindコマンド

    unixのfindコマンドで、ある複数のディレクトリから指定のファイル名だけを 検索し、その結果をgrepしたいのですが、 例えば 01_dir 02_dir : 11_di : 21_dir : と言うディレクトリがあります。 そこから、「0」で始まっているディレクトリの中なら拡張子が*.txtを 検索し、その検索したファイルに対して、grepを実行したいのですが、 上手くいきません。 もちろん、各ディレクトリには、「.txt」以外のファイルもありますし、 ファイル名にも条件を付与したいです。 以下の様に、 find . -name "0*_dir" -type d -print | xargs ls -l *.txt | grep "検索文字" find . -name "0*_dir" -type d -print | xargs ls *.txt | grep "検索文字" find . -name "0*_dir" -type d -print | xargs -i ls -l '{} /*.txt' | grep "検索文字" find . -name "0*_dir" -type d -print | xargs -i ls {} "検索文字" とやってみたのですがだめでした。 find ./ -type d \( -name '1_*dir' -o -name '2*_dir' -o -name '3*_dir' \) -prune -o -type f -print と「-prune」で除外するディレクトリを指定すればできなくはないですが、 すべてのディレクトリ書くのはいい方法ではないです。 よい方法をお願いします。 OSは、Solaris 11.3です。

  • 一括でファイル名の一部を置換したい

    LinuxのFedora Core 10, シェルにtcshを使用しています。よろしくお願いします。 ======================================================================= 複数のディレクトリ内に、"(from home)"のような文字列を含むファイルがあり、 それらのファイル名から一括で"(from home)"という文字列を取り除きたいのですが ======================================================================= 例えば以下のように、2つのディレクトリ(Directory1,Directory2)の下に、 "(from home)"という文字列を含むファイルが2つずつある場合を考えて、 /Directory1/sample (from home).txt         sample2 (from home).txt /Directory2/ sample3 (from home).txt          sample4 (from home).txt > rename "(from home)" "" `find / -name "(from home)" -print` を試したのですが上手くいかず、 > foreach i (`find / -name "(from home)" print`) foreach? rename "(from home)" "" $i foreach? end でも上手くいきませんでした。 もしかしたらfindコマンドで見つけたファイル名をrenameコマンドに 上手く渡せていないのかと思うのですが、どのようにすれば良いのでしょうか? また別の方法でも、一括でファイル名の一部を変更する方法があれば、 ご教授お願い致します。

  • findとxargsの使い方で

    unixで、findとxargsを使って検索を行っています。 以下の様に、 find . -type f | xargs コマンド 例えば、 find . -type f | xargs ls -l を実行すると、 「xargs: 入力ファイルが壊れています。: バイトシーケンスが正しくありません。」 が出力されます。 何が原因なのでしょうか。 また、解消方法はどのようにすればよいのでしょうか。 環境は solaris10 LANG=ja_JP.UTF-8 sh or bash

  • localeの設定がうまくできません

    localeの設定がうまくできません # vim /etc/sysconfig/i18n     ↓ LANG="C"を"ja_JP.UTF-8"に変更 # localeでこうなります locale: Cannot set LC_CTYPE to default locale: No such file or directory locale: LC_ALL?????????????????????: ?????????????????????? LANG=ja_JP.UTF-8 LC_CTYPE=UTF-8 LC_NUMERIC="ja_JP.UTF-8" LC_TIME="ja_JP.UTF-8" LC_COLLATE="ja_JP.UTF-8" LC_MONETARY="ja_JP.UTF-8" LC_MESSAGES="ja_JP.UTF-8" LC_PAPER="ja_JP.UTF-8" LC_NAME="ja_JP.UTF-8" LC_ADDRESS="ja_JP.UTF-8" LC_TELEPHONE="ja_JP.UTF-8" LC_MEASUREMENT="ja_JP.UTF-8" LC_IDENTIFICATION="ja_JP.UTF-8" LC_ALL= OS CentOS 6 x86_64 なにとどよろしくお願いします。

  • シェルのfindコマンドであるディレクトリ以外のファイルを検索

    ホームディレクトリにある.(例.dtや.atok)ディレクトを検索対象から外し尚且つ、*aa*のファイルを検索するにはどうしたら良いでしょうか? find . -type d -name .dt -prune -o -print | xargs grep "*aa*" でいろいろやってみましたができませんでした。 OS:HP-UX K-Shellです どうぞ宜しくお願いいたします。

  • rename関数 できない

    どうもこんばんは ファイル名を変更したくて、多数のサイトを調べてました。 どのサイトも全く同じことを書いてて rename("b.txt","a.txt"); a.txt を b.txt に変更する場合の記述。 そのとおりにやったのですが、 「Warning: rename(b.txt,a.txt) [function.rename]: No such file or directory in C:\xampp\htdocs\test\test.php on line 13 」 とエラーが吐いてしまい、いくらやってもこうなってしまいます。 エラー文は該当ファイルかディレクトリが無いとかそういう類だと思いますが、原因がわかりません。 これで数時間費やしてしまいまして、ヒントや答えのレスをいただくころには、 copy関数で代用していると思いますが、どうしてrenameできないのか気になります・・ ヒントでもいいので、レスいただければと思います。 因みにwindowsXPでのテスト環境下(XAMPP)です。 PHP Version 5.2.5

    • ベストアンサー
    • PHP
  • Autoexec.batの改変とNamazuの動作不良

    全文検索のcgiである namazuをインストールしようとして、 メモ帳でいじっていたら、そのうち autoexec.batの内容を以下のように改変 してしまって、初期の状態がわからなく なってしまいました。環境変数の領域が 確保できないとのメッセージだと思います がどうやってよいかわかりません。  ちなみに、namazuも正常に動作 しません。*.nmzファイルがdummyファイル と同じフォルダにできるはずなのですが、できない のです。Win98環境です。ルートと、namazu フォルダの二カ所でインストールを試みたのが災い しているようです。 Autoexec.batの内容です。 ----------------- SET BLASTER=A220 I7 D1 H7 P330 T6 SET SBPCI=C:\SBPCI loadhigh C:\WINDOWS\COMMAND\nlsfunc.exe C:\WINDOWS\country.sys SET PATH=C:\WINDOWS;C:\WINDOWS\COMMAND;C:\PERL\BIN;"%PATH%" PATH=C:\JUST\JSLIB;C:\JUST\JSLIB32;C:\PROGRA~1\JUSTSY~1\JSLIB32;%PATH%;"C:\ProgramFiles\Mts" REM ###### Namazu for Win32 Environment variable setting SET PATH=C:\namazu\bin;"%PATH%" SET NAMAZURC=C:\namazu\namazu\etc\namazu\namazurc SET NAMAZULOCALEDIR=C:\namazu\namazu\share\locale SET MKNMZRC=C:\namazu\namazu\etc\namazu\mknmzrc SET LANG=ja_JP.SJIS SET HOME=C:\namazu REM ###### kakasi for Win32 Environment variable setting SET KANWADICTPATH=C:\kakasi\share\kakasi\kanwadict SET ITAIJIDICTPATH=C:\kakasi\share\kakasi\itaijidict SET PATH=C:\namazu\namazu\bin;"%PATH%" SET PATH=C:\namazu\bin;"%PATH%" ------------ もちろん、今の時点で再起動はかけてはいません。 至急よろしくお願いいたします。

    • ベストアンサー
    • CGI
  • renameコマンドについて

    FTP先のファイル名を以下のように変更したいです。 rename *.txt *.csv これを実行すると 550 *.txt: The filename, directory name, or volume label syntax is incorrect. となってしまいます。 ワイルドカードは使用できると思っていたのですが、 何がいけないのでしょうか? ちなみに rename 111.txt 111.csv と指定した場合は問題なくできます。 複数のファイルを変換したいので困っています。 環境はWindows2000です。宜しくお願いします。

  • findして名前を変えてコピー(redhatlinux)

    初心者で2~3日前からシェルを作っています。 環境:redhatlinux5 AAAディレクトリにある*.txtを全て探して BBBディレクトリに*_mmdd.txtに 名前を変えてコピーしたいのですが どのように書いたらよいのかわかりません。 名前を変えずにそのままコピーは以下のように すればできたのですが・・・ find /AAA -name "*.txt" -exec cp {} /BBB\; そこから先がわからないのでよろしくおねがいします。