全文検索エンジン Hyper Estraier 2
自己レスです。よく分かりませんが
estseek.conf
estseek.tmpl
estseek.top
をchmod 744 したら動きました。失礼しました。 >>53
すげー遅レス失礼。
HEの情報収集中→WikipediaのHEのエントリ→ >>53 の製品ページ
って感じでその製品を知ったんだけど、GPLって書いてるくせに
ソースコードダウンロードのリンクをたどってもソースコードがないんだけど、
これってどうなの?
ttp://www.osstech.co.jp/product/chimera#%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89
つーか、会社概要見たけど、中の人がこのスレにいるのか。 >>173
別に公開する必要は無い。
会社側からするとChimera Searchのバイナリとあわせてソースコードを提供する、
もしくはバイナリにソースコードの入手方法が明記された文書を添えておけばいい。
GPLv2での3-aと3-bね。 >>174
そうなんだ。どうもありがと。
Webページ見たけど個人お断りみたいな事書いてあったな。
関係ないけどGPL v2日本語訳の原文へのリンクが間違ってるね(v3にリンクされてる)。 GPLはちゃんと読んでない人は世間の評判から誤解しやすいライセンスだから、
批判するんだったらちゃんと読んで理解してからにした方がいい。 >>173
これ読むといいよ。
http://web.archive.org/web/20041024013051/http://home.catv.ne.jp/pp/ginoue/memo/gpl.html >>47にも書いてるけど,属性検索ができない.
Wikipediaの全文検索デモページで試してみたけど効果なし... 疑似ノードマスタって、認証なしなの?
通常のノードマスタみたいにユーザとパスを設定できないの? estcmd outで文書の一括削除はできますか? Windows版のバイナリ落としてindexだけはコマンドで作ってみたんですが
JavaのAPI使ってファイル検索や全文検索を行うサンプルコードが載って
いるサイトとかってないですかね?
web環境ないのでSwingから直で操作したいのですがAPIの使い方がよくわかりません・・
初歩的な質問ですいません。 Unix板なのに申し訳ないのですが、Ubuntu Intrepid64bit版を使っています。
mecabを組み込みたかったのでソースからビルドしましたが、ライブラリとしてregexp.hだけ認識されないのでビルドできません。
32bitの時も同様だったのですが、こちらはネットでダウンロードしたライブラリをつっこんでインストール迄無事に成功しました。
aptitude search lib | grep -i regexp などで見つけたものを次々インストールしてみましたが全くお手上げです。
必要なライブラリについてご存知の方いませんか? >>182
やったの去年だからよく覚えてないけど
ふつーのUbuntuならソフトウェアの一覧に普通に入っていた気がする >>183-184
レス有難うございます、結局手順を忘れていただけで、32bit版でと同様の事をすればいいだけですんなりビルド成功。
aptでlibc-dev(これですよね?)を入れてもlibregex.aがないので、http://arglist.com/regex/からregex3.8a.tar.gzを落してビルドし~/lib ~/includeに放り込む。
似たような事で困っている方は試してみて下さい。
どうもお騒がせしました。 作者ページのタイトルがうざくなってるんだが、改ざんされたのかな 特に変わったようには見えないが。
> Last-Modified: Tue, 25 Dec 2007 01:47:27 GMT
だし。 >>186
ソースみてみ。アクセスしたタイミングで表示されるものが変わるようになってる。
しかし作者タソはmixiに就職してからH.E.のほうには全然顔出さなくなったな。 ソース見てみた、何じゃこりゃ。
> case 59: name = "ちょwwwおまwwwいごww"; break;
> case 61: name = "どう見ても超迷子です本当にありがとうございました"; break;
> From: [783] 名無しさん@お腹いっぱい。 <sage>
> Date: 2006/09/17(日) 07:52:41
>
> case 59: name = "ちょwwwおまwwwいごww"; break;
> case 61: name = "どう見ても超迷子です本当にありがとうございました"; break; 検索してもHitしないってことはなにが考えられるのかな?
登録文書に検索語句は確実にあるし、DBも壊れていない・・・ ごめん、壊れてたみたい。
estcmd inform で壊れてるかどうかわかんないんだよなあ・・・ >>192
そうなの?おれもestcmd inform で情報出てきたら平気だと思ってた。
どうやって壊れてる判定したの?
>>193
絶対に登録文書にある文字列を検索しても出てこなかったので。
再構築で直りました。
インデックスが壊れているかどうか調べるコマンドが欲しい。 estcmd repair を、時々やらないと駄目ってことですかね。
(-_-;ウーン たまに治らないときもあるし..
-- 追記お願いします m(_ _"m)ペコリ---------
【テク1】ノードマスタが再起動しない・・正常に停止しないとこうなる
サーバールートDirの _pid _stop の削除
【テク2】DBがdでるっぽい
#estcmd repair index_path
ex.ノードサーバー利用時は(サーバールートをcasketなら)
#estcmd repair casket/_node/ノード名
【テク3】estwaver crawl時の「could not open」エラーの解決法
クローラールートディレクトリを crawl_dir と仮定して Code:
#cd crawl_dir
#estcmd repair _index
#dpmgr repair _trace/0001/depot
#dpmgr repair _trace/0002/depot
#dpmgr repair _trace/0003/depot
>>195
>>estcmd repair を、時々やらないと駄目ってことですかね。
repairを一回やってみたんだ。直ったかなと思って、それでも念の為に
もう一回repairしてみたんだ。登録文書がごっそり減ったんだ。
repairを繰り返す度に減っていくんだ・・・
あきらめて再構築したよ。
>repairを繰り返す度に減っていくんだ・・・
((( ;゚Д゚)))ガクガクブルブル
「特定のキーワードにヒットしたを、DBから削除する」 なんてことできますか?
「特定のキーワードにヒットさせない」でもいいかなー Estraierで2chのログファイルを全文検索してJaneで表示できないでしょうか。
DATファイルを全文検索に入れるだけじゃなくて、名前やスレタイで絞り込めれば最高なのですが。
DesktopHEで利用しようとしております。 >>197
私も探してみたけど、そのものは無いみたい。
よくやる作業ならcgiとか作るんじゃないかな。
コマンドから手作業するときは、例えばこんな感じ。
消したいやつを検索して
estcmd search -vu -attr '@uri STRINC /path/to/del/' _index BadWord
OKなら上のコマンドに以下を追加
|awk '$1 ~ /^[0-9]+/{print $1}' |while read id; do estcmd out -cl _index $id; done >>198
出来ないことはないと思うけど、面倒くさいかもね。dat2htmlのフィルタ作って読みこませて、
DesktopHEの関連付けはjaneにすればいいみたいな。
私はhtmlに変換してブラウザで全文検索してる。そういう人の方が多いと思うけど。
>>200
速レスありがとう。
htmlに変換してって毎日巡回するたびにdat2html走らせてるの?
それとも真夜中にバッチ処理?
いずれにせよ、HDD容量が倍必要ですよね? >>201
>>毎日巡回するたびにdat2html走らせてるの?
そうだよ。1時間ごとにdat2htmlを走らせてる。ロードアベレージを見て負荷が大きいときは処理しないようにしている。
ログは8GBくらいある。datファイルは定期的に削除している。
ウェブブラウザから検索できるので、LAN内で利用出来て重宝している。
>>202
うちもログは6Gぐらいあります。
全部変換するとなると15gぐらいいきそうですよねorz
Windowsだからロードアベレージ監視できないのと、指定したコテハンがNASDAQについて
レスした発言とかを知りたくても特定がとてつもなく難しいのがネックになりそう。
Threadsearchと併用しないと駄目ですかね。 XREAで設置しようとしたけど、インストールの段階で躓いたorz
cannot find -liconvとかでてきてるし・・・
libiconvの入れ方に問題があるのかなぁ・・・。 某サイト丸ごと吸い上げようと、
クローラーの設定seeddepthを50にしたら、5時間かかっても1つもインデックスできなかった...
種文書を全部吸い上げてからインデックスするとは知らんかった。
seeddepth1〜2でよさそうね。 Hyper Estraier のwinを使っている方に質問です。
当方初心者。
インストール、インデックス作成まではできました。なんとか。
しかし、estseek.confの内容変更の段で(だと思ってるんですが・・・)つまづいています。
replaceの行の変更はどのようにしたらよろしいのか教えていただけないでしょうか?
何卒よろしくお願いいたします。 >>206
win版も使ったことはありますが、それだけでは何がなんだか分かりません。
estcmd inform casket は通りますか?
Hyper Estraier の画面は出るのですか?
表示のどこかに不満があるのですか?
どうなって欲しくて、現状どうなっているのか書いてください。 ゴミのような2chのログも、こいつを使うと宝の山になる。
はらしょー Hyper Estraier 1.4.10(Win)を利用している者です。
ブラウザの検索結果画面のリンクをクリックしてもジャンプしないという経験をした方はいないでしょうか?
今、その状態です。
検索結果画面のソースを丸々コピーしたhtmlファイルを作成し、それをブラウザに表示し、リンクをクリックすれば目的の文書にジャンプします。
すごく不思議な感じです。ブラウザはIE、sleipnirで確認しました。
どのようにすればジャンプするようになるかおわかりの方、教えていただけないでしょうか?
これは、もうhtmlの問題に過ぎないような気もしますが、よろしくお願いいたします。 鯖、HEてよりは、ブラウザ、クライアントの問題ぽく聞こえる。 >>211
ブラウザは、他にオペラも試しました。同じ結果でした。
クライアントも4人分のLAN接続しているPCから試しました。同じ結果でした。
>>210
仮に文字コードの問題なら、対処法はありますでしょうか?
何卒よろしくお願いいたします。 まずは、本当に文字コードの問題かどうかを確かめるべきです
フォルダ名からファイル名まで完全に英数文字だけのファイルをわざと検索結果として出して
それをブラウザから開くことができれば、文字コードの問題だと思います >>213
>フォルダ名からファイル名まで完全に英数文字だけのファイルをわざと検索結果として出し
やってみました。ダメでした。相変わらずジャンプしてくれません。
考えるに、estseek.conf の replace設定なのかな、と。
これについては、自分でも自信がなかったので、下記に示します。
当方の場合、c:\の直下に「server」のフォルダを作成し、そこに「estseek.cgi」、「casket」等を入れております。
−−−−−−−−−−−−−−−−−−−−−−−−−−−
replace: ^file:///c:\server\{{!}}http://127.0.0.1/
replace: /index\.html?${{!}}/
−−−−−−−−−−−−−−−−−−−−−−−−−−−
このような記載でよろしいのでしょうか? 追記します。
estseek.conf のreplace設定を見直してみました。
試行錯誤の結果、
−−−−−−−−−−−−−−−−−−−−−−−−−−−
replace: file:///c|/server/{{!}}http://サーバPCのIPアドレス/
replace: /index\.html?${{!}}/
−−−−−−−−−−−−−−−−−−−−−−−−−−−
とすることによりまして、
検索結果の画面に緑色で表示される、ヒットした文書ファイルの所在の表示が、
http://サーバPCのIPアドレス/|http://サーバPCのIPアドレス/・・・・・
となりました。
この、「|」を挟んで繰り返される「http://サーバPCのIPアドレス/」の最初の方、および「|」が消えるようになれば、正常動作するような気がします。
これらを消す、なにか良い方法がありましたら教えていただければ助かります。 replaceの設定は元の設定で問題ない感じがします。
むしろ、showlrealの設定が falseの設定になっていると、
当該現象が発生するように思われます。こちらでも、
同様の現象を確認しました。unix で 1.4.13ですが。
こちらでは、ジャンプしない現象も、その後に改善した状況も確認できました。
replace行を拝見すると、C:\server\ 部分のエスケープがされてないようです。
正しくは、C:\\server\\ではないでしょうか?
そして、C:\\server\\の配下に、実際の検索したいデータが存在する必要があります。estseek.cgiや indexファイルではありません。
showlrealの変更で、ジャンプの可否が確認できたら、この行を修正する必要があります。
以下マニュアルより
-------------
replaceは正規表現によってURIを変換するのに使います。複数回指定できます。
先頭にマッチする「^」を駆使すれば接頭辞(ディレクトリ)の変換ができますし、末尾にマッチする
「$」を駆使すれば接尾辞(拡張子)の変換ができます。例えば、「\.htm${{!}}.html」とすると、末尾の「.htm」を「.html」に変換できます。
「{{!}}」の前の部分は正規表現なので、「\」や「.」にはエスケープ文字「\」を前置する必要があることに注意してください。「{{!}}」の後の置換文字列は正規表現ではないので、エスケープは必要ありません。
--------------
>>216
showlreal を「true」にしてみましたが、状況は変わりませんでした。
ジャンプする、しないの問題でいえば、pdfの文書ファイルはジャンプすることが確認されました。
.htmがなぜかジャンプしないのです。
>>217
C:\\server\\と記載し、やってみました。
すると、検索結果の画面に緑色で表示される、ヒットした文書ファイルの所在の表示が、
c:\server\search\・・・・・
となりました。
htmの文書へは、ジャンプしてくれません。
仮にジャンプしてくれても、LAN内のPCからアクセスした場合、当該文書にアクセスできません。
やはり、http://サーバPCのIPアドレス/・・・のように表示されなくてはならないと思います。
まだまだ試行錯誤中・・・ つーかさ、やってることの意味分かってやってる?
別に「そうしないと君のためにならないよ」なんてくだらない説教をしたいからではなく、
何が分かって何が分からなかったのかを言ってくれないと、どこから説明すればいいのか、
どこを質問すればいいのかを、こっちは全部エスパーしなくちゃならないんだよ。
困ってるのは分かってるから、せめて情報の出し惜しみはしないでくれ。
# 素直に読むと、何も分かってない、replace行の動作の意味や正規表現とはなんぞやを
# すべて説明しなくちゃならないように思えるんだけど..... もしかしてそうなの?
もちろん早くなるけど、普通に使うと hyper で hyper estraier には引っかかるけど、hyperestraier には引っかかりません
そういうのを引っかけるようにするにはワイルドカードを使うなど工夫しなくてはなりません 日本語で最速なのはこれっぽいけど
英語で最速なのがどれなにか知りたかったんだ 亀レスにもほどがあるがズバリそのものがあります。
>>198
Datファイル全文検索ソフト
http://frozenlib.net/DatE/
>DatEはHyperEstraierを使用してJaneのログを高速に検索するソフトです。
「file size limit exceeded」で、いきなりダウンしたよ。
システムによって2Gとかのファイル制限あるから、
logファイルの大きさには注意しましょ。
ログの記録レベルを煽りましょう〜 indexサイズが小さくて、もれなく検索できればいい。
あと書庫内検索。重要度順位は入らんから不足無しで出るのが良い。
web用途ではなくデスクトップで使うには
書庫内と不足なしが大事。
順位は無くて良い。開いてみれば済むからな。
これはそういう使い方出来る? 複雑なアルゴリズムはいらない。
Grepの手助け程度で良い。
書庫に対応する。
いいやつ無いですか? 全文検索では全角か半角はどちらかに変換した方がいいと思うのですが。
UTF8や16では、全角のアルファベットは世界共通の配置になってますか。
言語ごとに異なる位置にありますか。
統一した方が良いと思いますが。コード位置がわかりません、 N-gramするうえで文字単位にするかバイト単位にするかはどうすればいいですか。
このソフトはどっちですか。
日本語だと一文字で2バイトか3バイトになります。英語は1バイトにります。
文字単位では日本語一文字と英語一文字の価値が同等になりますが
実際の情報量は日本語の方が大きいです。
英語の2文字か3文字くらいの情報量がありそう。
バイト単位にすると、N=2の時に英字一文字の検索がしにくくなります。 何が言いたいのかさっぱり分かりません!\( ̄∧ ̄)/
# 思いついた単語を羅列してるだけみたいだけど在日? いいえ、自分が理解できないだけなのを認めたくないだけです。 >>231
http://hyperestraier.sourceforge.net/uguide-ja.html#wordextraction
バイト単位ではなく文字単位2-gram
ただし英語はデフォルトで空白区切り、インデックス作成時に英語も文字単位2-gram指定可能
また英語空白区切りでインデックスを作ってもアルファベット一文字の検索は可能、2文字は不可
こんぐらい教えてやれよ、無能なやつばっかだな 分かってんならすぐに教えてやれよ、ノロマだな
という煽りは置いといて、元々の問いは本当にその答えを望んでいたのか?
もしそうだとしても、たぶんその答えの前に「HE内部では全ての文字はUTF-8で扱う」という大前提が必要では?
元々の問い(かどうかも分からない)は、N-gramのアルゴリズムには詳しそうなんだけど、それでいて「日本語は
英語の2文字か3文字くらいの情報量がありそう」とか言い出すし、UTF-8のことを知ってそうだけど知らなそうだし、
N-gramのアルゴリズムにそれだけ詳しいんならユーザガイドをちらっと読めば>>238の答えはすぐに分かるはずだし
ほんと、よく何を言ってるのか分かったね、すごいよあんた >>238 サンクス
いまローカルでgrep手助け用検索開発してる
もれないようにUTF8をバイナリとみてすべての2バイトを記録してみる。 ちょwまて
漏れなしバイナリ検索ならgrepで十分だろ
インデックス化するメリットないぞ mixiで公開してる東京なんとか
とかいう奴はこれの上位版? TokyoCabinetは検索エンジンというよりそのバックエンド、かな? これはなんでこんな速いんだ
転置インデックスだけの速さじゃないよね hyper estraierで3000報の論文を検索しまくったら
予想外に研究が進んで、凶授どもが俺のことを
天才と勘違いしてやがるw
こんなダメ人間に希望を与えてくれた作者氏に
頭が下がる思いです。 公式メーリングリストは敷居が高いのと、
若干過疎気味なので、こちらで質問させてください。
windows開発環境で、ドキュメントファイル(doc,xls,ppt,pdf)は
インデックスを作成し、検索できるようになりました。
後は掲示板のデータベースの検索が残っています。
SQLという言語で読み書きしてるらしいのですが、
hyper estraierでデータベースのインデックスを
作成するにはどうすればよいのでしょうか?
検索してみたのですが、windows環境での方法は
見つかりませんでした。
windows環境でインデックスを作成する方法の伝授、
もしくは説明してるサイトがありましたら、教示願います。
当方、組み込み系のプログラムの経験はありますが、
windowsプログラム、webアプリ、SQLは素人状態です。
要領を得ない、質問をした本人がいまいちわかってない
自覚がある質問で申し訳ありませんが、よろしくお願いします。 たぶん一番普通の方法はwebクローラーを使ってインデックスを作成
ttp://hyperestraier.sourceforge.net/cguide-ja.html
うまく行かないようであればスクリプトとかでインデックス追加スクリプトを自作
いろんな方法があってC,Java,Rubu,Perl,Pythonとか
ざっくり言うとプログラム中で @uri,@title,@mdate,本文を作って検索インデックスに追加。
頑張ればcsvデータ→シェルスクリプト+estcmdでもできなくはないと思う。 >>249
248です。
ありがとうございました。
まだわかっていない部分があるので、
まずはwebクローラーを使って試行してみます。 数が増えるとフラッシュしまくりで速度低下するんですが。
解決方法ありますか。 複数ファイルの書庫をディレクトリと認識するエンジンありますか >>252
書庫の中身をドラフト形式で渡すフィルタ書けばいいんじゃないかな。
【岩波書店】 Google問題の核心
―― 開かれた検索システムのために ――
牧野 二郎
http://www.iwanami.co.jp/shinkan/index.html
世界の出版界に衝撃が走った.Googleが新しいブックサービスを開始したのだ.
Googleなどの検索システムがなぜ興隆し,そこで起こっている収集の限界や偏向問
題など深刻化する問題を各国の事例などを踏まえ徹底的に検証する.それらを解決
するため,著者を軸にさまざまの分野の研究者が集結し,新しい検索システムを提
案する.
>>249
結局、SQLコマンドでデータを取ってきて、
インデックス作成するプログラムを作りました。
ありがとうございました。 すみません、教えてください。
Hyper Estraierを使い始めましたが、
Hyper Estraierで文章の中身だけでなく、
ファイル名やファイルパスも検索のキーワードに
同時にヒットさせたいです。
インデックスの作成や、検索時になにか
オプションで指定するなど、なにか方法がありますか。
よろしくお願いします。 クローラーで拾ってきたURLだけの検索ってので改造したけど、随分前のことなの忘れちゃった。
他に 引き継いで開発してくれる有志っていないの?
低スキルなので、私はだめだけど.. >>259
なんか問題あるっけ?
TCに移行すればいいじゃない。 最近使い始めたものです。
簡便書式で検索した場合、
例えば、「a*」とした場合と「ab*」とした場合に
なぜか「ab*」の方がヒット件数が多くなります。
一応、公式サイト見てきましたが、
それらしいことは書いてありませんでした。
なにか心当たりがある方がいれば、
教えてください。
よろしくお願いします。 >>262
データ量多くなるとまともに使えなくなるけどなw >>264
mixiの全データ検索に使用されているからそれはないのでは?
なにか運用間違えているとか? TCの全文検索ってQ-GRAMインデックスのことだろ?
データ量増えるとホント糞みたいに重くなって使い物にならんぞ。 mixiでTCが使われているのは全文検索じゃなかったね。ゴメン >>263
N-gramのN=2とかが関係してるんじゃない?
わかち書きを変えてみると違う結果になると思う。 >>269
レス、ありがとうございました。
とりあえず、est_cond_set_optionsのオプションをESTCONDSUREで
検索してみましたが、結果の数は変わりませんでした。
なんにしろ、N-gram関連を勉強してみます。 >>263
wildmax の設定でいくらか調整できると思う。
けれど一文字で検索する場合には、N-gramインデックスでは
あまり良い結果出せないんじゃないかな。
269が書いた通り、2-gramに対し一文字で検索するため、
「ab」を含む文書を取得する
「a」で始まる2-gramをwildmax個拾って、それらを含む文書を
取得する(2gramの出現頻度とかは見てない)
という内部動作なんだろうなと、前に思った。 >>271
遅レスすいません。さっき、気づきました。
詳細な情報ありがとうございました。
とりあえず、ソースを読んでみましたが、
QDBMの中身も把握してないと理解
できなさそうなので、時間のあるときに
見てみます。