GoGPT Best VPN GoSearch

OnWorksファビコン

SWISH-RUN - クラウド上のオンライン

OnWorksの無料ホスティングプロバイダーで、Ubuntu Online、Fedora Online、Windowsオンラインエミュレーター、またはMAC OSオンラインエミュレーターを介してSWISH-RUNを実行します。

これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの XNUMX つを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド SWISH-RUN です。

プログラム:

NAME


SWISH-RUN - Swish-e およびコマンド ライン スイッチの実行

概要


Swish-e プログラムは、コマンド ライン引数 (と呼ばれる) によって制御されます。 スイッチ)。 多くの場合、それは
シェル (コマンド プロンプト) から手動で実行するか、CGI スクリプトなどのプログラムから手動で実行します。
コマンドライン引数を swish に渡します。

注: Swish-e 構成では、いくつかのコマンド ライン スイッチを指定できます。
ファイルは「-c」コマンドライン引数で指定されます。 詳細については SWISH-CONFIG を参照してください。
利用可能な設定ファイルディレクティブの完全な説明。

Swish-e には、インデックス作成と検索という XNUMX つの基本的な操作モードがあります。 コマンドがあります
各モードに固有の行引数と、両方に適用されるその他の引数(ただし、
動作モードに応じて意味が異なります)。 これらのコマンドライン引数は次のとおりです。
以下にグループ化してリストします。

INDEXING -- インデックス作成中に使用されるコマンド ライン引数を説明します。

SEARCHING -- 検索中に使用されるコマンドライン引数をリストします。

その他のスイッチ -- 検索やインデックス作成に適用されないスイッチをリストします。

Swish-e バージョン 2.1 以降、その検索エンジンを
アプリケーション。 SWISH-LIBRARYをご覧ください。

インデックス作成


Swish-e インデックス作成は、次のコマンドを渡すことによって開始されます。 command ライン 引数 スウィッシュすること。 コマンド
に使用される行引数 検索 検索で説明されています。 SWISH-SEARCH も参照してください。
Swish-e での検索例。

Swish-e の使用法:

swish-e [-i dir ファイル ... ] [-c ファイル] [-f ファイル] [-l] \
[-v (番号)] [-S メソッド(fs⎪http⎪prog)] [-N パス]

「-h」スイッチ (ヘルプ) を使用すると、使用可能な Swish-e コマンド ライン引数がリストされます。

スウィッシュ -h

通常、すべてではないにしてもほとんどのインデックス設定は構成ファイル (指定された
「-c」スイッチを使用します)。 構成ファイルがセットアップされると、次のようにインデックス作成が開始されます。

swish-e -c /パス/to/config/file

設定ファイルの詳細については、「SWISH-CONFIG」を参照してください。

セキュリティ上の注意: swish バイナリに次の名前が付けられている場合 スイスイ検索 そうすれば、swishは何も許可しません
swish がインデックス ファイルに書き込む操作。

インデックスを作成するときは、一時ファイルにインデックスを付けてからインデックスを作成することをお勧めします。
ファイルの名前を最終的な場所に変更することが正常に完了しました。 これは特に
現在使用中のインデックスを置き換える場合に重要です。

swish-e -c swish.config -f Index.tmp
[swish からの戻りコードを確認するか、err: 出力を探してください]
mv インデックス.tmp インデックス.swish-e

インデキシング Command LINE Arguments

-i *ディレクトリおよび/またはファイル* (入力ファイル)
これは、インデックスを作成するディレクトリやファイルを指定します。 ディレクトリにはインデックスが作成されます
再帰的に。 これは通常、構成ファイルで次のように指定されます。 索引ディレクトリ
コマンドラインではなくディレクティブを使用します。 このスイッチを使用すると、
構成ファイルの設定。

-S [fs⎪http⎪prog] (ドキュメントソース/アクセスモード)
これは、インデックスを作成するドキュメントにアクセスするために使用する方法を指定します。 「fs」のいずれかにすることができます
ファイル システムによるローカル インデックス作成の場合 (デフォルト)、スパイダリングの場合は「http」、または「prog」
外部プログラムからドキュメントを読み取るため。

「conf」ディレクトリには、次のことを示すサンプル構成ファイルがあります。
さまざまなドキュメント ソース方法によるインデックス作成。

さまざまなインデックス作成方法については、SWISH-FAQ を参照してください。
http 方式によるスパイダリングとファイル システム方式によるスパイダリングの違い。

fs - ファイルシステム
「fs」メソッドは、ローカル (またはネットワーク) ドライブからファイルを読み取るだけです。 これは
「-S」スイッチが指定されていない場合のデフォルトのメソッド。 SWISH-CONFIG を参照してください。
「fs」メソッドに固有の設定ディレクティブ。

http - Web サーバーをスパイダー化する
「http」メソッドはスパイダー Web サーバーに使用されます。 付属のヘルパーを使用します
プログラムが呼び出されました スウィッシュスパイダー。 設定ディレクティブについては SWISH-CONFIG を参照してください。
「http」メソッドに特有のものです。

セキュリティに関する注意: Windows では、リモート ドキュメントから取得した URL が swish に渡されます。
シェルを介して (swish は システム() 実行するためのコマンド スウィッシュスパイダー
Windows)、これは追加のセキュリティ リスクとみなされる可能性があります。

「http」メソッドは非推奨です (または、少なくともあまり高く評価されていません)。 検討
スパイダリングには以下で説明する「prog」メソッドを使用します。 スパイダープログラムがある
で利用可能 プログラムビン 「prog」メソッドで使用するディレクトリ。 ここにあります
「prog」メソッドで解決されるこのメソッドの制限の数:

※swishspiderはスパイダーの標準リンクのみです。 フレームなど
リンクはたどられません。

* デフォルトでは、このスパイダーリング方法は、コンテンツを持つファイルのみにインデックスを作成します。
「text/*」のタイプ (例: text/plain、text/html、text/xml)。 使用する必要があります
ファイル拡張子を使用するパーサーにマップするための「DefaultContents」と「IndexContents」
swish (例: "IndexContents HTML* .html .htm") によって実行されますが、これは失敗します。
ドキュメントにはファイル拡張子がありません。

※Swish-eの「FileFilter」ディレクティブは「http」アクセス方式でも使用できますが、
ただし、(swsihspider に加えて) 別のプロセスが必要です。
プロセス)をフィルタリングされたドキュメントごとに実行します。

* SWISH::Filter モジュールは swishspider プログラムで使用できます。
SWISH::Filter は、汎用フィルタリング システムを提供します (「SWISH::Filter」を参照)
ドキュメンテーション)。 SWISH::Filter を使用するには、PERL5LIB が次の場所を指すように設定します。
SWISH モジュールの名前空間 (通常、Unix では /usr/local/lib/swish-e)。
具体的な例を挙げますと、以下の通りです。

import PERL5LIB=/usr/local/lib/swish-e # bash、bourne シェル
setenv PERL5LIB /usr/local/lib/swish-e # csh、tcsh

または Windows 上で

set PERL5LIB=c:\program files\swish-e2.4\lib\swish-e

SWISH::Filter は、ロードのオーバーヘッドのため、デフォルトでは有効になっていません。
取得されたすべてのドキュメントのモジュール。

Swish-e ディストリビューションには、SWISH::Filters::* に Perl モジュールが含まれています
非テキスト文書を Swish-e が実行できる形式に変換するための名前空間
簡単に解析します。 前述したように、ヘルパー スクリプトは スウィッシュスパイダー これらを使用します
モジュールは PERL5LIB 経由で見つけることができます。 これらのモジュールはインターフェースのみを提供します
変換を行うプログラムに。 たとえば、ダウンロードする必要があります
MSWord 文書をテキストに変換する「catdoc」プログラムをインストールします。
インデックス作成。 参照してください フィルター/README このフィルター システムの使用方法をご覧ください。

prog - 汎用アクセスメソッド
「prog」メソッドは、Swish-e バージョン 2.2 の新機能です。 一般的に設計されています
外部プログラムからドキュメントを Swish にフィードする目的のメソッド。

たとえば、外部プログラムはデータベース (MySQL など) を読み取ったり、Web をスパイダーしたりできます。
サーバーに保存したり、ドキュメントをある形式から別の形式に変換したりできます (例: pdf から html)。 また、
これを使用してファイル システムのファイルを読み取ることもできます (「-S fs」など)。
どのファイルにインデックスを付けるかを完全に制御できます。

実行する外部プログラム名は、IndexDir によって swish に渡されます。
ディレクティブ、または「-i」オプションを使用します。

swish-e が試行するため、指定されたプログラムは絶対パスである必要があります。 stat()
プログラムを実行して、それが存在することを確認します。 Swish はエラー報告を支援するためにこれを行います。

-i または IndexDir で指定されたプログラムが絶対パスではない場合 (つまり、
"/" は含まれません) swish-e は定義された "libexecdir" ディレクトリを追加します
構成中に。 通常、libexecdir は「$prefix/lib/swish-e」に設定されます。
(/usr/local/lib/swish-e) ただし、プラットフォームとインストールに依存します。 ランニング
swish-e -h はディレクトリを報告します。

たとえば、-S prog プログラム「spider.pl」は、次のコマンドで使用する Perl ヘルパー プログラムです。
-S prog は libexecdir にインストールされます。

IndexDir スパイダー.pl
SwishProgParameters のデフォルト http://localhost/index.html

swish-e は libexecdir で Spider.pl を見つけます。

追加パラメータは、
SwishProgParameters ディレクティブ。 上記の例では、swish-e は XNUMX つの値を渡します。
Spider.pl へのパラメータ、「default」および「http://localhost/index.html".

特別な名前「stdin」を「-i」または IndexDir とともに使用して、swish に読み取りを指示することができます。
外部プログラムからではなく標準入力から。 以下の例を参照してください。

外部プログラムは、一連のデータを標準出力 (swish キャプチャ) に出力します。
ヘッダーの後にインデックスを作成するファイルのコンテンツが続きます。 出力は次のようになります
Web サーバーから返される電子メール メッセージまたは HTTP ドキュメント。
ヘッダー、空行、コンテンツの名前と値のペア。

コンテンツの長さは、swish に提供されるコンテンツ長ヘッダーによって決まります。
プログラム; ドキュメント間で送信される「レコード終了」文字やフラグはありません。
したがって、コンテンツ長ヘッダーが正しいことが重要です。 これは
一般的なエラーの原因。

この方法の利点の XNUMX つは (たとえば、フィルターを使用する場合と比較して)
外部プログラムは、インデックス作成ジョブ全体に対して XNUMX 回だけ実行されます。
あらゆる書類。 これにより、すべてのプロセスに対してフォークや新しいプロセスの作成が回避されます。
文書化されており、外部プログラムが次のようなものである場合に大きな違いが生じます。
起動コストが大きいperl。

Perl で書かれた簡単な例を次に示します。

#!/usr/local/bin/perl -w
厳格な使用;

# ドキュメントを作成する
私の $doc = <


ドキュメントのタイトル


これが本文です。


EOF

# swish 用のヘッダーを準備する
私の $path = 'Example.file';
私の $size = 長さ $doc;
私の $mtime = 時間;

# ドキュメントを出力する(スウィッシュする)
印刷 <
パス名: $path
コンテンツの長さ: $size
最終 M 時間: $mtime
ドキュメントタイプ: HTML*

EOF

$doc を印刷します。

外部プログラムはヘッダーをスウィッシュするために渡されます。 ヘッダーは
文書の本文に空白行を入れます。 使用可能なヘッダーは次のとおりです。

パス名:
これは、インデックスを作成するファイルの名前です。 これは任意の文字列にすることができます。
たとえば、データベース内のレコードの ID、URL、または単純なファイルなどです。
名前。

このヘッダーは必須です。

コンテンツの長さ:
このヘッダーは、ヘッダーに続くドキュメントの長さをバイト単位で指定します。
ヘッダ。 この長さはドキュメントの長さと同じである必要があります。長さを短くしないでください。
文書の最後に余分な改行を追加する間違い。

このヘッダーは必須です。

前回の M 時間:
このパラメータはファイルの最終変更時刻であり、時刻である必要があります。
スタンプ (プラットフォーム上のエポックからの秒数)。

このヘッダーは必須ではありません。

ドキュメントタイプ:
次の方法で、swish によるドキュメント タイプ (「Indexcontents」) の決定をオーバーライドできます。
「Document-Type:」ヘッダーを使用します。 ドキュメント タイプは、どのドキュメント タイプかを選択するために使用されます。
パーサー Swish-e はドキュメントの内容を解析するために使用します。

たとえば、スパイダー プログラムは、Web から返されたコンテンツ タイプをマッピングする可能性があります。
サーバーを Swish-e が理解するタイプの XNUMX つに変換します。 例えば、

私の $doc_type = 'HTML*' if $response->content_type =~ m!text/html!'

このヘッダーは必須ではありません。

更新モード:
増分インデックスを更新する場合、このヘッダーを使用してモードを選択できます。
インデックスを更新するため。 可能な値は次の XNUMX つです。

更新
削除します
目次

「更新」は、指定された日付の場合、指定されたファイルでインデックスを更新します。
ファイルは、インデックスに既に存在するファイルの日付よりも新しいです。 に設定する
「更新」はコマンドラインで -u を使用するのと同じです。

「削除」モードでは、Path-Name ヘッダーで指定されたファイルが削除されます。 設定
「削除」はコマンドラインで -r を使用するのと同じです。

「インデックス」はファイルをインデックスに追加します。 注: swish-e は、次のことを確認しません。
ファイルはすでに存在します。

このヘッダーが指定されていない場合、デフォルトは、
コマンドライン (-u、-r、または none)。

このオプションはまだ実験段階であり、将来変更される可能性があります。 聞く
ご使用前にSwish-eリストに登録してください。

上記のプログラム例は XNUMX つのドキュメントを返して終了するだけですが、これはそれほど簡単ではありません。
使える。 通常、プログラムはファイルやファイルなどの何らかのソースからデータを読み取ります。
データベース、XML、HTML、またはテキストとしてフォーマットし、それらを XNUMX 回ずつ swish に渡します。
別。 「Content-Length:」ヘッダーは、各ドキュメントの終了位置を swish に伝えます。
特別な「レコードの終わり」文字やマーカーはありません。

上記の例でインデックスを作成するには、プログラムが以下であることを確認する必要があります。
実行可能ファイル (および Perl へのパスが正しいこと) を確認し、swish を呼び出して次のように伝えます。
「prog」モードで実行するか、入力に使用するプログラムの名前を指定します。

% chmod 755 example.pl
% ./swish-e -S prog -i ./example.pl

プログラムは swish を実行する前にテストできますし、テストする必要があります。 例えば:

% ./example.pl > test.out

さらにいくつかの便利なサンプル プログラムが swish-e ディストリビューションで提供されています。
に位置する プログラムビン ディレクトリ。 一部にはドキュメントが含まれています。

% cd プログビン
% perldoc スパイダー.pl

その他には、コメントを含む小さな例があります。

% cd プログビン
DirTree.pl が % 減少

当学校区の Spider.pl プログラムは、 -S HTTP 方法。 それは
機能がはるかに豊富で、インデックス作成をより詳細に制御できます。

特別なプログラム名「stdin」を「-i」または IndexDir とともに使用する場合は、swish-e
プログラムからではなく標準入力から読み取ります。 例えば:

% ./example.pl --count=1000 /path/to/data ⎪ ./swish-e -S prog -i stdin

これは基本的に、次の swish-e 構成ファイルを使用するのと同じです。

SwishProgParameters --count=1000 /path/to/data
IndexDir ./example.pl

構成ファイル内で実行中

% ./swish-e -S prog -c swish.conf

これにより、「-S prog」を使用した構成ファイルなしで swish を実行する簡単な方法が提供されます。
パラメータを必要とするプログラム。 データをファイルにキャプチャできることも意味します
次に、同じデータでもう一度インデックスを作成します。

% ./example.pl /path/to/data --count=1000 > docs.txt
% cat docs.txt ⎪ ./swish-e -S prog -i stdin -cnormal_index
% cat docs.txt ⎪ ./swish-e -S prog -i stdin -c fuzzy_index

「stdin」の使用は、(swish の代わりに) swish を呼び出すプログラムにも役立つ可能性があります。
プログラムを呼び出します)。

(より一般的な「-」ダッシュの代わりに「stdin」が使用される理由は、
swish はコマンドラインを解析します。 これは将来修正されるはずです。)

「prog」メソッドは、使用可能な構成パラメータの一部をバイパスします。
ファイル システム メソッド -- 「IndexOnly」、「FileRules」、「FileMatch」などの設定
「prog」メソッドを使用する場合、「FollowSymLinks」は無視されます。 予想されるのは、
これらの操作は、渡す前に外部プログラムで実行する方が効率的です。
書類をスウィッシュにセットします。 つまり、「prog」メソッドを使用する場合は、
インデックスを作成したいドキュメントを選択します。

swish のフィルター機能を「prog」メソッドで使用することもできますが、パフォーマンスは低下します。
外部プログラム内からフィルタリング プログラムを実行した方がよいでしょう。 こちらも参照
フィルター/README ドキュメントの変換とフィルタリングを簡単に追加する方法の例については、
Perl ベースのプログラムに追加します。

Notes を特定いたします。 -S うろつく on MS Windows

Windows は、プログラムを決定するためにプログラムのシバン (#!) 行を使用しません。
走る。 したがって、たとえば Perl プログラムを実行するときは、
perl.exe バイナリをプログラムとして使用し、「SwishProgParameters」を使用して名前を付けます
ファイルにソフトウェアを指定する必要があります。

インデックスディレクトリ:/perl/bin/perl.exe
SwishProgParameters read_database.pl

Swish はコマンドを実行する前にスラッシュをバックスラッシュに置き換えます。
「IndexDir」で指定します。 スウィッシュが使用するのは、 ポペン(3) を渡すコマンド
シェル経由でコマンドを実行します。

-f *indexfile* (インデックスファイル)
インデックスを作成している場合は、生成されたインデックスを保存するファイルを指定します。
指定できるファイルは XNUMX つだけです。 こちらも参照 インデックスファイル 構成ファイルで。

検索する場合は、検索元のインデックス ファイル (XNUMX つ以上) を指定します。 の
デフォルトのインデックス ファイルは、現在のディレクトリにあるindex.swish-eです。

-c *file ...* (設定ファイル)
インデックス作成に使用する構成ファイルを指定します。 このファイルには多くのものが含まれています
Swish-e の処理方法を制御するディレクティブ。 完全なリストについては、SWISH-CONFIG を参照してください。
構成ファイルディレクティブの。

例:

swish-e -c docs.conf

インデックスを作成するディレクトリ、インデックス ファイル、または詳細オプションを指定する場合、
コマンドラインでは、これらの値は構成ファイルで指定された値をオーバーライドします。

複数の構成ファイルを指定できます。 たとえば、次のものがあるかもしれません。
サイト全体の共通設定を含む構成ファイルと、特定の設定を含む別の構成ファイル
インデックス。

例:

1) swish-e -c swish-e.conf
2) swish-e -i /usr/local/www -findex.swish-e -v -c swish-e.conf
3) swish-e -c swish-e.conf stopwords.conf

1 構成ファイル内の設定は、サイトのインデックス付けに使用されます。

2 これらのコマンドライン オプションは、構成ファイル内のすべてをオーバーライドします。

3 swish-e.conf 内の変数が読み取られ、次に stopwords.conf 内の変数が読み取られます。
読み取られます。 両方のファイルに同じ変数が存在する場合、古い値が使用されることに注意してください。
上書きされる可能性があります。

-e (エコノミーモード)
大規模なサイトの場合、インデックス作成には利用可能な以上の RAM が必要になる場合があります。 「-e」スイッチ
swish は、インデックス作成中にデータ構造を保存するためにディスク領域を使用するように指示し、メモリを節約します。
swish が大量の RAM を使用し、コンピューターがスワップし始める場合は、このオプションをお勧めします。
過剰に使用すると、使用可能なメモリを増やすことができなくなります。 トレードオフはわずかです
インデックス作成に時間がかかり、ディスク ドライブが混雑します。

-l (シンボリックリンク)
このオプションを指定すると、swish はインデックス作成時にシンボリック リンクをたどるように指示されます。 の
設定ファイルの値 FollowSymLinks コマンドライン値をオーバーライドします。

デフォルトではシンボリックリンクをたどりません。 私の結果はインデックス作成時間のわずかな改善でした
swish はすべてのディレクトリを統計する必要がないため、FollowSymLinks を有効にする必要がなくなります。
ファイルが処理されて、それがシンボリック リンクであるかどうかが判断されます。

-N パス (新しいファイルのみにインデックスを付けます)
「-N」オプションはファイルへのパスを指定し、ファイルのみを指定します。 より新しい 指定されたファイルよりも
インデックスされます。 これは、増分インデックス、つまりインデックスを作成する場合に役立ちます。
すべてのファイルに対して最後に完全なインデックスが作成されてから追加されたファイルのみが含まれます。

例(悪い例)

swish-e -c config.file -N インデックス.swish-e -f インデックス.new

これにより、通常どおりインデックスが作成されますが、変更日が より新しいファイルのみが作成されます。
インデックス.swish-e インデックスされます。

これは悪い例です。 インデックス.swish-e と思われるかもしれないのは
最後にインデックスを作成した日付。 問題は、ファイルが次のファイルに追加された可能性があることです。
インデックス作成がディレクトリを読み取るとき、および インデックス.swish-e ファイルが作成されました -- これは
非常に大規模なインデックス作成ジョブの場合は、かなりの時間がかかる場合があります。

唯一の解決策は、完全なインデックス作成の実行中に新しいファイルが追加されないようにすることです。
これが不可能な場合は、次のようにした方が若干良いでしょう。

完全なインデックス作成:

タッチインデックス_時間.ファイル
swish-e -c config.file -f Index.tmp
mv インデックス.tmp インデックス.フル

増分インデックス作成:

swish-e -c config.file -N インデックス作成時間.ファイル -f インデックス.tmp
mv インデックス.tmp インデックス.増分

次に、次のように検索します

swish-e -w foo -f インデックス.フル インデックス.インクリメンタル

またはインデックスをマージします

swish-e -M インデックス.フルインデックス.増分インデックス.tmp
mv インデックス.tmp インデックス.swish-e
swish-e-w foo

-r **増分 index 形式でアーカイブしたプロジェクトを保存します. それだけ** 「-r」オプションは、swish-e を「削除」モードにします。
入力ファイル (「-i」または「IndexDir」パラメータで指定) はすべてファイルから削除されます。
既存のインデックス。

例:

swish-e -r -i file.html

削除するだろう ファイル.html 既存のインデックスから。

-u **増分 index 形式でアーカイブしたプロジェクトを保存します. それだけ** 「-u」オプションは、swish-e を「更新」モードにします。 の
各入力ファイルのタイムスタンプが、ファイル内の対応するファイルと比較されます。
既存のインデックス。 swish-e がまだ存在しない入力ファイルに遭遇した場合、
インデックス、または入力ファイルよりも古いタイムスタンプを持つ存在の場合、入力ファイルは
インデックスで更新されました。 入力ファイル内で追加または削除された単語はすべて、
そのままインデックスに反映されます。

例:

swish-e -i file.html -u

これにより、index.swish-e インデックスが file.html の内容で更新されます。 file.html の場合
新しい場合は追加されます。 file.html がすでにインデックスに存在する場合、その内容は次のようになります。
インデックスで更新されます。

-v [0⎪1⎪2⎪3] (冗長レベル)
「-v」オプションには0~3の数値を指定できます。完全に指定する場合は0を指定してください。
サイレント操作と詳細レポートの場合は 3。

値が指定されていない場合は、1 が想定されます。 こちらも参照 インデックスレポート 構成で
ファイルにソフトウェアを指定する必要があります。

警告とエラーは、冗長レベルに関係なく報告されます。 さらに、すべて
エラーと警告は標準出力に書き込まれます。 これは歴史的な理由によるものです(多くの場合、
エラー メッセージの標準出力を解析するスクリプトが存在します)。

-W (0⎪1⎪2⎪3) (パーサー警告レベル)
libxml2 パーサーを使用する場合、デフォルトのパーサー警告レベルは 2 に設定されます。
「-W」オプションを使用すると、そのデフォルトをオーバーライドできます。 ほとんどの場合、それをオフにすることをお勧めします
完全に:

swish-e -W0 -i パス/への/ファイル

パーサーでエラーが発生した場合は、サイレントに失敗します。

検索


Swish-e で検索する場合は、次のコマンド ライン引数を使用できます。 これらは
スイッチは、検索するインデックス、検索するフィールド、および検索対象を選択するために使用されます。
結果として印刷します。

このセクションでは、使用可能なコマンド ライン引数とその使用法のみをリストします。 参照してください
詳細な検索手順については、SWISH-SEARCH を参照してください。

警告: CGI インターフェイス経由で Swish-e を使用する場合は、「CGI 危険!」を参照してください。

セキュリティ上の注意: swish バイナリに次の名前が付けられている場合 スイスイ検索 そうすれば、swishは何も許可しません
swish がインデックス ファイルに書き込む操作。

検索 Command LINE Arguments

-w *word1 word2 ...* (クエリ単語)
これにより、多数のキーワードを使用して大文字と小文字を区別しない検索が実行されます。 インデックスファイルがない場合
to search が指定されている場合 (「-f」スイッチ経由)、swish-e は次のファイルを検索しようとします。
現在のディレクトリにあるindex.swish-e。

スウィッシュ・イー・ワード

フレーズ検索は、引用符区切り文字 (二重引用符) を配置することで実行されます。
デフォルト) 検索フレーズの周囲。

swish-e -w '単語または「このフレーズ」'

検索は引用符でシェルから保護される必要があります。 通常、これは単一です
Unix で実行する場合は引用符で囲みます。

Windowsの場合 command.com 引用符を使用する必要はないかもしれませんが、引用符を使用する必要があります。
フレーズを区切るために使用される引用符はバックスラッシュで囲みます。

swish-e -w 「フレーズ」

フレーズ区切り文字は「-P」スイッチで設定できます。

検索は以下に限定される場合があります メタ名 例えば:

swish-e -w meta1=(foo または baz)

内のみを検索します meta1 タグ。

MetaNames の説明については、SWISH-SEARCH を参照してください。

-f *file1 file2 ...* (インデックス ファイル)
検索中に使用されるインデックス ファイルを指定します。 複数のファイルがリストされる場合があります。
各ファイルが検索されます。 「-f」スイッチが指定されていない場合、ファイルは
インデックス.swish-e 現在のディレクトリにある がインデックス ファイルとして使用されます。

-m *数値* (最大結果)
検索中に、返される結果の最大数を指定します。 デフォルト
すべての結果を返すことです。

このスイッチは、多くの場合、結果 XNUMX を返すために「-b」スイッチと組み合わせて使用​​されます。
一度にページずつ実行します (大規模なインデックスの場合は強く推奨されます)。

-b *数値* (最初の結果)
設定します 始まり 返される検索結果 (レコードには 1 から番号が付けられます)。 このスイッチ
「-m」スイッチとともに使用すると、結果をグループまたはページで返すことができます。

例:

swish-e -w '単語' -b 1 -m 20 # 最初の 'ページ'
swish-e -w '単語' -b 21 -m 20 # XNUMX 番目の 'ページ'

-t HBthec (コンテキスト検索)
「-t」オプションを使用すると、特定の HTML タグ内にのみ存在する単語を検索できます。
このオプションの引数で指定する文字列内の各文字は、
単語を検索するための別のタグ。 H はすべての HEAD タグを意味し、B はすべての HEAD タグを意味します
BODYタグ、tはすべてのTITLEタグ、hはH1~H6(ヘッダー)タグ、eは強調タグ
(B、I、EM、または STRONG の可能性があります)、c は HTML コメント タグです

ヘッダー内のみを検索 ( )タグ

swish-e -w word -th

-d *文字列* (区切り文字)
結果を印刷するときに使用する区切り文字を設定します。 デフォルトでは、Swish-e は
フィールドをスペースで区切って出力し、ドキュメントのタイトルを二重引用符で囲みます。 これ
出力は解析が難しい場合があるため、文字を指定するには「-d」を使用することをお勧めします。
またはフィールド間の区切り文字として使用される文字列。

文字列「dq」は「二重引用符」を意味します。

swish-e -w word -d , # 単一の文字
swish-e -w word -d :: # 文字列
swish-e -w word -d '"' # Unix では二重引用符
swish-e -w word -d \" # Windows では二重引用符
swish-e -w word -d dq # 二重引用符

制御文字「\t \r \n \f」も指定できます。

警告: この文字列は に直接渡されます。 sprintf() したがって、セキュリティが公開されます
穴。 ユーザーデータが -d フォーマット文字列を直接設定することを許可しないでください。

-P *キャラクター*
フレーズ検索に使用する区切り文字を設定します。 デフォルトは二重引用符「"」です。

bash でのいくつかの例: (シェルのメタ文字に注意してください)

swish-e -P ^ -w 'タイトル=^フレーズ内の単語^'
swish-e -P \' -w "title='フレーズ内の単語''

-p *property1 property2 ...* (プロパティを表示)
これにより、swish はリストされたプロパティを検索結果に出力します。 プロパティ
「-p」引数にリストされている順序で返されます。

プロパティは次によって定義されます。 固有名詞 設定ファイル内のディレクティブ (「
SWISH-CONFIG) とプロパティも定義する必要があります。 メタネーム。 Swish はテキストを保存します
メタ名の 財産、これが検索中にこのテキストを返します。
オプションが使用されます。

プロパティは、ソース ドキュメントに含まれるデータを返すのに非常に役立ちます。
検索中にソース文書を読み直す必要があります。 たとえば、これは次のようになります
短いドキュメントの説明を返すために使用されます。 こちらも参照 ドキュメント サマーリーズ  
SWISH-CONFIG の PropertyNames。

インデックス作成中に件名とカテゴリのプロパティを返す。

swish-e -w word -p 件名カテゴリ

プロパティは二重引用符で囲まれて返されます。 プロパティに二重引用符が含まれている場合、
は HTML エスケープ (") です。より高度な戻り方法については、「-x」スイッチを参照してください。
プロパティのリスト。

注: 適切な PropertyNames ディレクティブを使用してインデックスを作成する必要があります。
このオプションを使用するには、ユーザー設定ファイルを使用します。

-s *プロパティ [asc⎪desc] ...* (ソート)
通常、検索結果は関連性の高い順に出力されます。
最初にリストされます。 「-s」ソートスイッチを使用すると、指定した順序で結果をソートできます。
財産ここで、 財産 を使用して定義されました メタネーム   プロパティ名
インデックス作成中のディレクティブ (SWISH-CONFIG を参照)。

渡される文字列には、並べ替え順序を指定する文字列「asc」と「desc」を含めることができます。
また、複数のプロパティを指定して、複数のキーに基づいて並べ替えることもできます。

例:

タイトルプロパティの昇順で並べ替えます

-のタイトル

タイトル順に降順、名前順に昇順に並べ替えます

-s タイトル 記述名 asc

注: Swish のソートキーは 100 文字に制限されています。 この制限は次のように変更できます。
src/config.h の MAX_SORT_STRING_LEN と swish-e の再構築。

-L プロパティ値の範囲を制限します (制限)
この is an 実験的 機能!

「-L」スイッチを使用すると、検索結果をプロパティ値の範囲に制限できます。

例:

swish-e -w foo -L swishtitle am

「foo」という単語を含み、そのドキュメントのタイトルが含まれるすべてのドキュメントを検索します。
「a」から「m」までの範囲。 デフォルトでは、プロパティの大文字と小文字は無視されます。
ただし、これは PropertyNamesCompareCase 構成ディレクティブを使用して変更できます。

制限は、ユーザー定義のプロパティを使用して行うこともできます。

たとえば、メタ タグに作成されたタイムスタンプを含むドキュメントのインデックスを作成した場合、次のようになります。



次に、「created_on」というプロパティがあること、そしてそれが
タイムスタンプ。

プロパティ名作成日_on

インデックス作成後、ドキュメントをタイムスタンプの範囲に制限できるようになります。

-w foo -L created_on 946684800 949363199

foo という単語を含み、created_on の日付を持つドキュメントが検索されます。
1 年 2000 月 31 日の開始から 2000 年 XNUMX 月 XNUMX 日の終了まで。

注: swish は現在日付を解析しません。 Unix タイムスタンプを使用する必要があります。

次の XNUMX つの特別な形式を使用できます。

-L swishtitle <= m
-L swishtitle >= m

文字「m」以下、または文字「m」以上のタイトルを検索します。

この機能は、「swishrank」または「swishdbfile」プロパティでは機能しません。

この機能は、インデックス作成中に swish によって構築された事前にソートされたテーブルを利用します。
検索中にこの機能を高速化します。 インデックス作成の出力に次のことが表示されるはずです。
次のような行:

6件の物件を並べ替えました。

これは、インデックス作成中に XNUMX つの事前に並べ替えられたテーブルが構築されたことを示しています。 デフォルトでは、すべて
プロパティはインデックス作成中に事前に並べ替えられます。 事前に並べ替えられるプロパティは次のとおりです。
構成パラメータ「PreSortedIndex」によって制御されます。

事前に並べ替えられていないプロパティで「-L」スイッチを使用しても機能しますが、
be ずっと 検索中は遅くなります。

PropertyNamesSortKeyLength 設定はプロパティの並べ替えに使用されることに注意してください。
小さすぎる PropertyNamesSortKeyLength を使用すると、-L によって間違った選択が行われる可能性があります
不完全な並べ替えによるプロパティ。

これは実験的な機能であり、その使用法とインターフェイスは変更される可能性があります。

-x formatstring (拡張出力フォーマット)
「-x」スイッチは出力フォーマット文字列を定義します。 フォーマット文字列にはプレーンを含めることができます
テキスト名とプロパティ名 (swish で定義された内部プロパティ名を含む) が使用されます。
すべての結果の出力を生成します。 また、出力形式は、
プロパティ名は、C に似た printf 形式の文字列で制御できます。 この機能
コマンドライン スイッチ「-d」および「-p」をオーバーライドします。「-d」の場合は警告が生成されます。
または「-p」は「-x」とともに使用されます。

警告: フォーマット文字列 (fmt) は直接に渡されます。 sprintf() したがって、暴露します
セキュリティホール。 ユーザーデータが -x フォーマット文字列を直接設定することを許可しないでください。

たとえば、検索結果でタイトルのみを XNUMX 行に XNUMX つずつ返すには、次のようにします。

swish-e -w ... -x ' \n' ...

注: 「\n」をシェルから保護する必要がある場合があります。

定義方法については、「ResultExtFormatName」も参照してください。 命名 swish 内の文字列の書式設定
設定ファイル

フォーマット of "フォーマット文字列":

"文章文章文章..."

場所 プロパティ名 次のとおりです。

* config ファイルディレクティブで指定されたユーザープロパティの名前
「プロパティ名」

* swish Auto プロパティの名前 (以下を参照)。 これらのプロパティは定義されています
swish によって自動的に -- PropertyNames で指定する必要はありません
指令。 (将来的には変更される可能性があります。)

プロパティ名は「<」と「>」で囲む必要があります。

ユーザー プロパティ:

Swish-e を使用すると、ドキュメント内で使用できる特定の META タグを指定できます。
as ドキュメント プロパティ。 として識別された META タグの内容
document プロパティを検索結果の一部として返すことができます。 ドキュメントのプロパティ
を使用してインデックスを作成するときに定義する必要があります。 プロパティ名 構成ディレクティブ (「
スイッチ設定)。

ユーザー定義の PropertyName の例:







自動応答オプション プロパティ:

Swish は、インデックス付けされたドキュメントごとに多数の「Auto」プロパティを定義します。 これらは
「-x」形式を使用する場合に出力に使用できます。

名前 種類 内容
-------------- ------- ----------------------------- -----------------
swishreccount Integer 結果レコードカウンター
swishtitle String ドキュメントのタイトル
swishrank Integer このヒットの結果ランク
swishdocpath 文字列 ドキュメントへの URL またはファイルパス
swishdocsize Integer ドキュメントのサイズ (バイト単位)
swishlastmodified Date ドキュメントの最終変更日
swishdescription 文字列 ドキュメントの説明 (参照:StoreDescription)
swishdbfile 文字列 swish データベースのインデックスファイルのパス

Auto プロパティは、ショートカットを使用して指定することもできます。

ショートカットのプロパティ名
-------- --------------
%c swishreccount
%d スイッチの説明
%D swishlastmodified
%I swishdbfile
%p swishdocpath
%r シュシュランク
%l swishdocsize
%t swishtitle

たとえば、以下は同等です。

-バツ ' : : \n'
-x '%r:%p:%t\n'

出力にリテラルのパーセント記号を入力するには、XNUMX つのパーセント記号「%%」を使用します。

フォーマット文字列 of プロパティ:

「-x」形式文字列でリストされるプロパティには、形式制御文字列を含めることができます。 これらは
「propertyformats」は、関連付けられたプロパティの内容を制御するために使用されます。
印刷された。 プロパティ形式は、C 言語の printf 形式と同様に使用されます。 物件
形式はプロパティタグ内に属性「fmt」を含めることで指定します。

フォーマット文字列は、上記の「%」ショートカットでは使用できません。

一般的な構文:

-バツ ' '

ここで、「subfmt」は「propertyname」の出力形式を制御します。

プロパティ形式文字列の例:

日付タイプ:
文字列型:
整数型:

マニュアルページを参照してください。 ストラフタイム(3)と スプリント(3) の説明については、
書式設定文字列。 注: strftime の一部のバージョンでは、%s フォーマット文字列が提供されません。
(エポックからの秒数)そのため、swish は特別な形式の文字列「%ld」を提供します。
エポックからの秒数を表示します。

プロパティ形式文字列の最初の文字は、形式の区切り文字を定義します。
弦。 例えば、

-バツ " ...\n"
-バツ " ...\n"
-バツ " ...\n"

スタンダード 定義済み フォーマット:

サブフォーマットを省略した場合、次のフォーマットが使用されます。

文字列型: "%s" (printf char * など)
整数型: "%d" (printf int など)
Float 型: "%f" (printf double と同様)
日付タイプ: "%Y-%m-%d %H:%M:%S" (strftime など)

テキスト in 「フォーマット文字列」 or "propfmtstr":

テキストは書式文字列 (およびプロパティの書式文字列) にそのまま出力されます。 特別
文字はバックスラッシュでエスケープできます。 結果がヒットするたびに新しい行を取得するには、
「fmtstr」の末尾には改行文字「\n」を含める必要があります。

-バツ " ⎪ ⎪ \n"
-x "カウント= 、ランク= \n"
-x "タイトル=\ \ 」
-x '日付: \n'
-x '日付 (秒): \n'

コントロール/エスケープ 文字:

フォーマット文字列で C のようなコントロール エスケープを使用できます。

既知のコントロール: \a、\b、\f、\n、\r、\t、\v、
数字エスケープ: \xhexdigits \0octaldigits
文字エスケープ: \anychar

例、

swish -x "%c\t%r\t%p\t\" \"\n"

of -x 形式でアーカイブしたプロジェクトを保存します. 文字列:

-x "%c⎪%r⎪%p⎪%t⎪%D⎪%d\n"
-x "%c⎪%r⎪%p⎪%t⎪ ⎪%d\n"
-バツ " \t \t \t \n
-x "xml_out: \ \>\ \n"
-x "xml_out: %s'> \n"

-H [0⎪1⎪2⎪3⎪ ] (ヘッダー出力の冗長性)
「-H n」スイッチは、拡張された ヘッダ 出力。 これは検索するときに最も便利です
一度に複数のインデックス ファイルを作成するには、
「-f」スイッチ。 「-H 2」は、各インデックス ファイルに固有のヘッダーのセットを生成します。 これ
各インデックス ファイルの生成に使用される設定にアクセスできます。

単一のインデックス ファイルを検索する場合でも、「-H n」を使用すると追加情報が提供されます。
インデックス ファイル、そのインデックス付け方法、および swish がクエリにどのように影響しているかについて説明します。

-H 0 : ヘッダー情報を出力せず、検索結果エントリのみを出力します。
-H 1 : 標準結果ヘッダーを出力します (デフォルト)。
-H 2 : 検索された各インデックス ファイルの追加ヘッダー情報を出力します。
-H 3 : 拡張ヘッダー出力 (ストップワードの印刷など)。
-H 9 : 結果のヘッダーに診断情報を出力します (変更元: C<-v 4>)

-R [0⎪1] (ランキング方式)
この is an 実験的 機能!

SWISH-E のデフォルトのランキング スキームは、クエリ内の各単語をその単語の観点から評価します。
各ドキュメント内の頻度と位置。 デフォルトのスキームは 0 です。

バージョン 2.4.3 の新機能により、オプションで実験的なランキング スキームを選択できます。
ドキュメントの頻度と位置に加えて、逆ドキュメント頻度 (IDF) を使用する、または
検索対象のすべてのインデックスにわたる各単語の相対頻度、および
相対密度、または単語の頻度の正規化。
文書内の単語数。

注: IgnoreTotalWordCountWhenRanking を次のように設定する必要があります いいえ or 0 -R のインデックス内
1が動作します。

IDF ランキングをオンにするには、-R 1 を指定します。 設定方法については、API ドキュメントを参照してください。
Perl または C プログラムのランキング スキーム。

その他 SWITCHES


-V (バージョン)
現在のバージョンを印刷します。

-k *文字* (キーワードを出力)
「-k」スイッチはテストに使用され、swish がすべてのキーワードを出力します。
その文字で始まるインデックス。 「-k '*'」と入力すると、次のリストが生成されます。
swish によってインデックス付けされたすべての単語。

-D *インデックス ファイル* (デバッグ インデックス)
-D オプションはバージョン 2.2 ではサポートされなくなりました。

-T *オプション* (トレース/デバッグ スウィッシュ)
-T オプションは、デバッグ時に役立つ情報を出力するために使用されます。
swish-eの操作。 このオプションは、以前のバージョンの「-D」オプションを置き換えました。

「-T help」を実行すると、利用可能な *オプション* のリストが出力されます。

マージ 目次


Swish-e の以前のバージョンでは、インデックス作成に非常に大量のメモリが必要でした。
インデックス作成プロセスが非常に遅くなる可能性があります。 マージにより、チャンク単位でインデックスを作成する方法が提供され、
次に、インデックスを XNUMX つのインデックスに結合します。

インデックス作成が大幅に高速化され、使用するメモリが大幅に減り、「-e」スイッチを使用すると非常に多くのメモリが使用されます。
大規模なサイトのインデックス作成に必要なメモリはほとんどありません。

それでも、場合によっては、異なるインデックス ファイルを XNUMX つのファイルにマージすると便利な場合があります。
探しています。 これは、別々のサイト インデックスと共通のインデックスを保持したいことが考えられます。
グローバル検索の場合、または検索したいドキュメントの個別のコレクションがある場合
すべて一度に実行しますが、個別に管理します。

-M *インデックス1 インデックス2 ... インデックスN out_index
コマンドラインで指定されたインデックスをマージします -- 最後に入力されたファイル名は
出力ファイル。 出力インデックスは存在してはなりません (存在しない場合、マージは続行されません)。

共通の設定でインデックス付けされたインデックスのみをマージできます。 (例:混ぜないでください)
ステミングインデックスと非ステミングインデックス、または異なる WordCharacter 設定を持つインデックス、
など)。

メモリ使用量を削減するには、マージ中に「-e」スイッチを使用します。

Merge は、「-v」の設定に関係なく、進行状況メッセージを生成します。

-c *設定ファイル*
インデックス作成中に構成ファイルを指定して、管理情報を追加します。
インデックスファイルを出力します。

ドキュメント インフォ


$Id: SWISH-RUN.pod 1741 2005-05-17 02:22:40Z カルマン $

.

onworks.net サービスを使用してオンラインで SWISH-RUN を使用する


無料のサーバーとワークステーション

Windows と Linux のアプリをダウンロード

Linuxコマンド

Ad




×
Advertisement
❤️ここでショッピング、予約、購入してください。料金はかかりません。これにより、サービスが無料で維持されます。