Verity コレクションにメタデータを挿入し、それを検索するためのインデックスを作成します。Verity は、さまざまなタイプの物理ファイルやデータベースクエリーを検索するために ColdFusion アプリケーションに統合できる検索エンジンです。クエリーからの結果のデータベース列にインデックスを付けると、複数の SQL クエリーを使用して同じデータを返していた場合に比べてはるかに迅速にクエリーデータを検索できるようになります。
Verity コレクションにインデックスを付ける前に、ColdFusion MX Administrator または cfcollection タグを使用して Verity コレクションを定義する必要があります。
ColdFusion MX Administrator を使用して、または Vspider や MKVDK などのネイティブの Verity インデックス作成ツールを使用して、Verity コレクションにインデックスを付けることもできます。ただし、これらのオプションを使用すると、ディレクトリパス内のファイルのコレクションにインデックスを付けることが制限されます。
Verity コレクションの作成、インデックス作成、検索の詳細については、『ColdFusion MX 開発ガイド』の第 24 章「検索インターフェイスの構築」を参照してください。
<cfindex
collection = "collection_name"
action = "action"
type = "type"
title = "title"
key = "ID"
body = "body"
custom1 = "custom_value"
custom2 = "custom_value"
custom3 = "custom_value"
custom4 = "custom_value"
category = "category_name"
categoryTree = "category_tree"
URLpath = "URL"
extensions = "file_extensions"
query = "query_name"
recurse = "yes"、"no"
language = "language">
status = "status">
cfcollection、cfexecute、cfobject、cfreport、cfsearch、cfwddx
ColdFusion MX 7:
status、category、および categoryTree の各属性が追加されました。
cflock の推奨使用方法が削除されました。
ColdFusion MX:
action 属性の値 optimize が廃止になりました。この値は ColdFusion MX では機能せず、エラーが発生する可能性があります。
external 属性の動作が変更されました。external 属性を指定する必要はなくなりました。内部コレクションか外部コレクションかは ColdFusion が自動的に検出します。
cfindex タグでは、cfsearch タグのクエリー結果にインデックスを付けることができます。
| 属性 |
必須/ オプション |
デフォルト | 説明 |
|---|---|---|---|
|
collection |
必須 |
|
ColdFusion によって登録されているコレクションの名前。 |
|
action |
必須 |
|
|
|
type |
オプション |
|
|
|
title |
オプション |
|
ドキュメントのタイトルをドキュメントから取り出せない場合、そのタイトルを提供します。 |
|
key |
必須 |
(空の文字列) |
|
|
body |
|
|
区切りリストで列を指定できます。例 : この属性は、 |
|
custom1 |
オプション |
|
コレクションレコード内の不連続な値にインデックスを付けます。これにより、Verity MATCHES 演算子を使用して特定のレコードを検索できるようになります。一方、
|
|
custom2 |
オプション |
|
使用方法は、 |
|
custom3 |
オプション |
|
使用方法は、 |
|
custom4 |
オプション |
|
使用方法は、 |
|
category |
オプション |
|
インデックスを付けるデータの 1 つ以上の検索カテゴリを指定する文字列です。1 つのインデックスについて、複数のカテゴリをカンマで区切って定義することができます。 |
|
categoryTree |
オプション |
|
検索対象の階層構造のカテゴリまたはカテゴリツリーを指定する文字列値です。スラッシュ ("/") で区切られた、カテゴリの系列です。指定できるカテゴリツリーは 1 つだけです。 |
|
URLpath |
オプション |
|
|
|
extensions |
オプション |
htm、 html、 cfm、 cfml、 dbm、 dbml |
たとえば、次のコードでは、リストされている拡張子のファイルまたは拡張子のないファイルが返されます。
|
|
query |
オプション |
|
コレクションを生成する対象のクエリーの名前です。 |
|
recurse |
オプション |
no |
|
|
language |
オプション |
English |
オプションについては、cfcollectionを参照してください。適切な Verity Locales 言語パック (Western Europe、Asia、Multilanguage、Eastern Europe/Middle Eastern) が必要です。 |
|
status |
オプション |
|
ColdFusion MX がステータス情報を返す先の構造体の名前です。 |
cfindex タグに必要な属性の設定は、query 属性を設定するかどうかによって決まります。query 属性を有効なクエリー名に設定した場合は、cfindex がディスク内のドキュメントにインデックスを付けるのではなく、クエリー内のデータにインデックスを付けるように指定します。query 属性を設定しない場合、cfindex はファイル (type = file)、ディレクトリパス内のファイルのセット (type = path)、または body 属性で指定されたテキスト (type = custom) にインデックスを付けると想定します。
query 属性を有効なファイル名に設定した場合、cfindex タグは、次の属性およびその値で指定されるようにインデックスを作成します。
| タイプ | 属性値 |
|---|---|
|
File |
|
|
Path |
|
|
|
|
|
Custom |
|
|
|
|
query 属性を設定しない場合、cfindex タグは、次の属性およびその値で指定されるようにインデックスを作成します。
| タイプ | 属性値 |
|---|---|
|
File |
|
|
Path |
|
|
|
|
|
Custom |
|
|
|
|
type を指定しないで query を設定した場合、ColdFusion は type を custom のデフォルト値に設定します。
type と query のいずれも設定しない場合、ColdFusion は type を file のデフォルト値に設定します。
type が custom の場合、key および body 以外のすべての属性で、列名だけでなくリテラル値も指定することができます。これにより、コレクション内でフィールドを空に変更することができます。
status 属性は、cfindex オペレーションの結果に関する次の情報と診断を提供します。
| キー | タイプ | 説明 |
|---|---|---|
|
BADKEYS |
struct |
無効なキーのインデックス作成に関する診断メッセージを含む、キーの構造体です。無効なキーがない場合、このキーは存在しません。 |
|
DELETED |
Number |
削除されたキーの数です。 |
|
MESSAGES |
array |
診断メッセージの配列です。重大でないエラーと警告が含まれ、Verity K2 Index サーバーから返されます。メッセージがない場合、このキーは存在しません。 |
|
INSERTED |
Number |
コレクションに挿入されたキーの数です。 |
|
UPDATED |
Number |
コレクションで更新されたキーの数です。 |
<!--- 例 1: ファイルのインデックス作成 (type = "file") ----------------------------> <!--- 例では、ステータス変数の内容 (info) をダンプします。 -------------------> <cfindex collection="CodeColl" action="refresh" type="file" key="C:¥blackstone¥wwwroot¥vw_files¥cfindex.htm" urlpath="http://localhost:8500/vw_files/" language="English" title="Cfindex Reference page" status="info"> <!--- 属性を検索します。 ---> <cfsearch name = "mySearch" collection = "CodeColl" criteria = "Attributes" contextpassages = "1" maxrows = "100"> <cfoutput> key=#mySearch.key#<br /> title=#mySearch.title#<br /> context=#mySearch.context#<br /> url=#mySearch.url#<br /> </cfoutput> <cfdump var="#info#"> <!--- 例 2: パスのインデックス作成 (type = "path") ------------------------------> <cfindex collection="CodeColl" action="refresh" type="path" key="C:¥inetpub¥wwwroot¥vw_files¥newspaper¥sports" urlpath="http://localhost/vw_files/newspaper/sports" extensions = ".htm, .html" recurse="no" language="English" categoryTree="vw_files/newspaper/sports" category="Giants"> <!--- 条件への参照を検索します。 ---> <cfsearch name = "mySearch" collection = "CodeColl" categoryTree="vw_files/newspaper/sports" category="Giants" criteria = "Williams" contextpassages = "1" maxrows = "100"> <cfoutput> key=#mySearch.key#<br /> title=#mySearch.title#<br /> context=#mySearch.context#<br /> url=#mySearch.url#<br /> </cfoutput> <!--- 例 3: クエリーのインデックス作成 (type = "custom")、custom1 を使用 ------------> <!--- テーブルからデータを取り出します。 ---> <cfquery name="getCourses" datasource="cfdocexamples"> SELECT * FROM COURSES </cfquery> <!--- コレクションを上記のクエリー結果で更新します。 ---> <!--- キーは Courses テーブル内の Course_ID です。 ----> <!--- 本文は検索用にインデックスを付ける列を指定します。 ---> <!--- custom1 は Course_Number 列の値を指定します。 ---> <cfindex query="getCourses" collection="CodeColl" action="Update" type="Custom" key="Course_ID" title="Courses" body="Course_ID,Descript" custom1="Course_Number" > <h2>インデックス作成の終了</h2> <!--- cno は検索する custom1 の値を提供します。
フォーム入力を使用することもできます。 ---> <cfset cno = "540"> <cfsearch name = "mySearch" collection = "CodeColl" criteria = "CF_CUSTOM1 <MATCHES> #cno#" contextpassages = "1" maxrows = "100"> <!--- Course_Number 540 に対するインデックス設定された値
(Course_ID and Descript) を返します。 ---> <cfoutput> key=#mySearch.key#<br /> title=#mySearch.title#<br /> context=#mySearch.context#<br /> url=#mySearch.url#<br /> </cfoutput> <!--- 例 4: クエリー内のファイルのインデックス作成 (type= "file") ---------------> <!--- ファイル名 (Contract_File) を含む列がある行を取り出します。 ---> <cfquery name="getEmps" datasource="cfdocexamples"> SELECT * FROM EMPLOYEE WHERE EMP_ID = 1 </cfquery> <!--- コレクションを上記のクエリー結果で更新します。 ---> <!--- キーにより完全ファイル名を含む列が指定されます。 ---> <!--- 同じ方法で、クエリーが関与しないかのようにファイルにインデックスが付けられます。 ---> <cfindex query="getEmps" collection="CodeColl" action="Update" type="file" key="Contract_File" title="Contract_File" body="Emp_ID,FirstName,LastName,Contract_File"> <h2>インデックス作成の終了</h2> <cfsearch name = "mySearch" collection = "CodeColl" criteria = "vacation" contextpassages = "1" maxrows = "100"> <cfoutput> key=#mySearch.key#<br /> title=#mySearch.title#<br /> context=#mySearch.context#<br /> url=#mySearch.url#<br /> </cfoutput> <!--- 例 5: クエリー内のパスのインデックス作成 ----------------------------> <!--- パス (Project_Docs) を含む列がある行を取り出します。 ---> <cfquery name="getEmps" datasource="cfdocexamples"> SELECT * FROM EMPLOYEE WHERE Emp_ID = 15 </cfquery> <!--- コレクションを上記のクエリー結果で更新します。 ---> <!--- キーによりディレクトリパスを含む列が指定されます。 ---> <!--- 同じ方法で、クエリーが関与しないかのようにパスにインデックスが付けられます。 --- ---> <cfindex query="getEmps" collection="CodeColl" action="update" type="path" key="Project_Docs" title="Project_Docs" body="Emp_ID,FirstName,LastName,Project_Docs"> <h2>インデックス作成の終了</h2> <cfsearch name = "getEmps" collection = "CodeColl" criteria = "cfsetting" contextpassages = "1" maxrows = "100"> <cfoutput> key=#getEmps.key#<br /> title=#getEmps.title#<br /> context=#getEmps.context#<br /> url=#getEmps.url#<br /> </cfoutput> <!--- 例 6: html ファイルの CodeColl コレクション内のキーの削除 ---> <!--- 指定したディレクトリ内 (サブディレクトリは対象外) -------------> <cfindex collection="CodeColl" action="delete" type="path" key="C:¥CFusionMX7¥wwwroot¥vw_files¥newspaper" urlpath="http://localhost:8500/vw_files/newspaper" extensions = ".htm, .html" recurse="no"> <!--- 例 7: CodeColl コレクション内のすべてのキーの破棄 ---> <!--- 再帰 -------------------------------------------------------> <cfindex collection="CodeColl" action="purge" type="path" key="C:¥CFusionMX7¥wwwroot¥vw_files¥newspaper">
ColdFusion MX 7 | ColdFusion MX 6.1 | ColdFusion MX* | ColdFusion 5* | フォーラム* | デベロッパーセンター | サポート情報 | バグ報告
バージョン7