ActionScriptで実現するテキストサーチエンジンクラス

以前残していた新聞や電子資料などをテキスト検索要求があると思います。オープンソースの全文検索エンジンは多いですが、簡単なテキスト内容を検索する場合であればそんな複雑のほかのエンジンを埋め込む処理はいらないですね。

下記はActionScriptで実現するテキストサーチエンジンクラスです。このクラスを利用するとCD-Romなどのテキスト内容の検索は簡単で実現できます。

次のデモのテキストエディタに何か入力してボタンをクリックすれば結果を出てます。色反転も出来ます。

たとえば、「sentence」を入力して「find exact」ボタンをクリックすると最初の一つ目を赤色になります。「find all」ボタンをクリックすると全部のヒットしたものを赤色になります。

TextSearchEngineというものは実は一つのStaticクラスのみで実装されています。以下のようでTextFieldに検索できます。

PippoFlash.TextSearchEngine.findExact({key:"find me", textField:myTextField});

特徴として以下の様のいくつかあります。


-> Search for entire phrase or each word
-> Case sensitive / unsensitive
-> Exclude search exact words
-> Set forbidden characters
-> Set minimum search term length
-> Set TextFormat for original text, and for search results
-> Set parameters once, and proceed with searches
-> Returns verbose object with all needed search results

メソッド説明:

setupSearchParameters(params);

このメソッドの引数はfindAll()とfindExact()にも全部設定できるので、ここはメソッド自体も省略できます。

以下はsetupSearchParametersメソッドのそれぞれ引数の詳細説明です。


minWordSize – NUMBER – The minimum length of the search key. If a term is shorter than this, the Class doesn’t look for it and returns a message.
textField – TextField- A reference to a TextField instance containing the text to be searched (in alternative, use “text”);
text – STRING – If no textField is defined, a string can be inputed directly.
mainTextFormat – TextFormat – The text format to set plain text pefore a search (if is not defined, the original TextFormat of textField is used)
foundTextFormat – TextFormat – The text format to set found words in the defined textField. (If not defined, words are coloured in red).
excludeKeys – STRING – A space separated list of terms to be excluded from search. (If searching an HTML text, it is better to exclude html text. To do this you can set this string to: “font size color table div …”); This excludes only EXACT terms.
excludeChars – STRING – A space separated list of forbidden chars. (If searching an HTML text, it is better to exclude html soecial characters. To do this you can set this string to: “<> ! \” ‘ ? / …”); This excludes search terms which CONTAIN the char, or the word in this list. Remeber to put spaces or it will be treated as a single word.

findExactメソッドは「params.key」に指定されたキーを検索できます。実行するとき一つもしくは二つパラメータしかを指定できないです。

以下はfindExactメソッドのそれぞれ引数の詳細説明です。


textField – TextField – A reference to a TextField instance containing the text to be searched (in alternative, use “text”); This can be skipped if already set with setupSearchParameters().
key – STRING – The search key. It can be a single word or a sentence.
matchCase – BOOLEAN – If set to true, the search will be case sensitive.
*REMEMBER* All parameters can be re-setted with this function.

以下のソースで検索結果を取れます。


var result = TextSearchEngine.findExact({key:"find me"});

もっと詳しい情報はここのFlashテキストサーチエンジンクラスを参考してください。TextSearchEngineクラスはここからダウンロードできます。サンプルはここにダウンロードできます。

Leave a Reply

Your email address will not be published. Required fields are marked *