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

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

noname#212058の回答

noname#212058
noname#212058
回答No.1

namazu groonga を使用するメリットは『事前にイン デックスを作っておけば、検索速度がめっちゃ速い』 ことです。 もし、処理手順を  1. 検索を開始  2. pdf からテキストを抽出  3. 抽出したテキストから検索実行  4. 結果表示 のようなことを考えているのであれば、namazu groonga を使うのはデメリットしかありません。 (検索のためにインデックスを作る処理に時間が かかるので、逆に遅くなってしまう) namazu groonga を効率的に使えるのは  ・事前にインデックスを作ることができる  ・事前に作ったインデックスを使いまわして   検索するケースが多い 場合です。 検索のたびに pdf が変わる前提のシステムなら使う メリットは皆無です。

noname#214079
質問者

お礼

ありがとうございます。 検索するディレクトリの pdf は少しづつ追加されていき そのたびにインデックスを作成しなおしておく、 というようにして使用していくことになると思います。 > 2. pdf からテキストを抽出 No.2 の方によると、namazu ではこれは必要ないということのようですね。

関連する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

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

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

  • 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 なにとどよろしくお願いします。

  • 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\; そこから先がわからないのでよろしくおねがいします。