説明
1 つ以上の Solr コレクションを検索します。コレクションが作成され、インデックスが付けられていなければ、このタグは検索結果を返すことができません。コレクションは、以下の方法で作成できます。
- cfcollection タグを使用する
- ColdFusion Administrator で作成する
次の方法でコレクションにインデックスを作成できます。 - ColdFusion で、cfindex タグを使用する
- ColdFusion Administrator で、cfindex タグを呼び出す
詳しくは、『ColdFusion アプリケーションの開発』の検索インターフェイスの構築を参照してください。
カテゴリ
シンタックス
cfsearch supports script style syntax: cfsearch(name="<search_name>", collection="<collection_name>"); <cfsearch collection = "collection name" name = "search name" category = "category[,category2,...]" categoryTree = "tree location" contextBytes = "number of bytes" contextHighlightBegin = "HTML string" contextHighlightEnd = "HTML string" contextPassages = "number of passages" criteria = "search expression" language = "language" maxRows = "number" orderBy = "rank_order" previousCriteria = "criteria" startRow = "row number" status = "" suggestions = "suggestion option" type = "criteria">
注意:このタグの属性は attributeCollection 属性で指定でき、その値は構造体になります。attributeCollection 属性で構造体の名前を指定し、タグの属性名を構造体のキーとして使用します。 |
関連項目
cfcollection、cfexecute、cfindex、cfobject、cfreport、cfwddx
履歴
ColdFusion 10:新しい orderBy 属性
ColdFusion 9:Solr 検索エンジンを使用できるようになりました。
ColdFusion MX 7:
- category、categoryTree、status、suggestions、contextPassages、contextBytes、
contextHighlightBegin、contextHighlightEnd、previousCriteria の各属性が追加されました。 - 結果列として、author、category、categoryTree、context、rank、size、recordsSearched、type が追加されました。
- ステータス構造体およびその構造体に関連付けられているキーに関する情報が追加されました。
- 個々の K2 サーバーおよび k2server.ini ファイルへの参照が削除されました。
- 未登録のコレクションへの参照が削除されました。
- 外部コレクションへの参照が削除されました。ColdFusion MX では、Verity 検索サービスを使用してすべてのコレクションを管理します。
- cflock の推奨事項が変更されました。cfsearch タグを cflock タグで囲むことは推奨事項ではなくなりました。
ColdFusion MX: - external 属性は非推奨になりました。今後のリリースではこのタグは機能せずエラーを引き起こす可能性があります。各コレクションが内部コレクションか外部コレクションであるかは自動的に検出され、この情報は保管されます。このタグでは、絶対(完全修飾)コレクションパス名およびマップ済みコレクション名がサポートされます。
- クエリー結果の動作が変更されました。cfindex タグでは、cfsearch オペレーションのクエリー結果にインデックスを付けることができます。
- Verity オペレーションの動作が変更されました。ColdFusion で、Acrobat PDF ファイルに対する Verity オペレーションがサポートされるようになりました。
- 複数のコレクションの動作が変更されました。このタグを使用して、複数のコレクションを検索できます。複数のコレクションの検索では、K2 サーバーで登録されたコレクションと他の方法で登録されたコレクションを同時に検索することはできません。
- コレクションのネーミング規則が変更され、スペースを含むコレクション名が使用できるようになりました。
- 次のサポートが変更されました。このタグは、Verity 2.6.1、LinguistX、および ICU ロケールをサポートしています。
- 返す例外が変更されました。このタグでは SEARCHENGINE 例外を返すことができます。
属性
属性 |
必須/オプション |
デフォルト |
説明 |
---|---|---|---|
name |
必須 |
|
検索クエリーの名前です。 |
collection |
必須 |
|
コレクション名です。カテゴリ検索を実行(category または categoryTree を指定)する場合以外は、複数のコレクションを指定できます。 |
category |
オプション |
|
検索の条件として使用する、カンマで区切られたカテゴリのリストです。このレベルを指定しても、コレクションでカテゴリが有効でない場合、ColdFusion は例外を返します。 |
categoryTree |
オプション |
|
カテゴリの階層ツリー上の、検索を開始する位置です。ColdFusion では、このレベル以下を対象に検索が行われます。このレベルを指定しても、コレクションでカテゴリが有効でない場合、ColdFusion は例外を返します。category 属性と併用できます。 |
criteria |
オプション |
|
検索条件です。type 属性のシンタックスルールに従います。criteria 属性で大文字と小文字が混在したエントリを渡すと、検索では大文字と小文字が区別されます。大文字だけまたは小文字だけのエントリを渡すと、大文字と小文字は区別されません。Solr のシンタックスおよび区切り文字のルールに従ってください。『ColdFusion アプリケーションの開発』の Solr 検索のサポートを参照してください。 |
contextBytes |
OptionalSolr |
300 |
コンテキスト要約に返される最大バイト数です。 |
contextHighlightBegin |
OptionalSolr |
<b> |
コンテキスト要約で検索語の先頭に追加する HTML です。この属性を contextHighlightEnd とともに使用して、コンテキスト要約で検索語を強調表示します。 |
contextHighlightEnd |
OptionalSolr |
</b> |
コンテキスト要約で検索語の末尾に追加する HTML です。この属性を contextHighlightBegin とともに使用して、コンテキスト要約で検索語を強調表示します。 |
contextPassages |
OptionalSolr |
0 |
Solr がコンテキスト要約(結果の context 列)に返す句および文の数です。デフォルトは 0 で、コンテキスト要約は無効です。 |
language |
オプション |
english |
非推奨です。この属性は、無視されるようになりました。コレクションの言語は、検索を実行するために使用されます。 |
maxRows |
オプション |
all |
クエリー結果に返される行の最大数です。 |
orderBy |
オプション |
|
カスタムフィールド列のランク順をソートします。デフォルトでは、昇順でソートされます。 |
previousCriteria |
オプション |
|
検索結果の既存セットの結果セット名です。検索エンジンは、前の検索スコアやランクに関係なく、criteria の結果セットを検索します。この属性を使用して、結果セット内で検索を実装します。 |
startRow |
オプション |
1 |
取得する最初の行の行番号です。 |
status |
オプション |
|
ColdFusion での検索情報の配置先となる構造体変数の名前を指定します。検索情報には、代替検索条件の提案(スペルの修正)などが含まれます。この構造体のキーのリストについては、「ステータス構造体キー」を参照してください。 |
suggestions |
オプション |
never |
スペルの誤りがある単語について検索エンジンがスペル提案を返すかどうかを指定します。次のいずれかのオプションを使用します。
|
type |
オプション |
standard |
エンジンで条件を処理する際に使用するパーサーを指定します。
|
使用方法
cfsearch タグは、cfoutput タグ内で参照可能な列を持つクエリーオブジェクトを返します。例えば、次のコードでは、"filming" または "filmed" に完全一致する用語の検索が指定されます。
<cfsearch name = "mySearch" collection = "myCollection" criteria = '<WILDCARD>`film{ing,ed}`' type="standard" startrow=1 maxrows = "100"> <cfdump var = "#mySearch#>
この例では、一重引用符(')およびバックティック(`)が区切り文字として使用されています。
検索のパフォーマンスを最適化するには、常に maxrows 属性を指定し、使用するアプリケーションの要件に応じた値に設定してください。値を 300 未満に設定すると、最適なパフォーマンスが得られます。cflock タグをこのタグと共に使用しないでください。Solr にはロック機能が用意されています。cflock タグを使用すると、検索のパフォーマンスが低下します。
cfsearch タグの結果列
変数 |
説明 |
---|---|
context |
デフォルトでボールドで強調表示された検索語を含むコンテキスト要約です。これは、contextpassages 属性を 0 よりも大きい数値に設定した場合に有効になります。 |
url |
コレクションへの挿入に使用される cfindex タグ内の URLpath 属性の値です。 |
key |
コレクションへの挿入に使用される cfindex タグ内の key 属性の値です。 |
title |
PDF ドキュメントや Office ドキュメントのタイトルなど、コレクションへの挿入に使用される cfindex タグ内の title 属性の値です。タイトルがドキュメントから抽出されない場合は、cfindex の title 属性の値が各行に使用されます。 |
score |
検索条件に基づいた、ドキュメントの関連性の値です。 |
custom1、custom2、custom3、custom4 |
コレクションへの挿入に使用される cfindex タグ内のカスタムフィールドの値です。 |
size |
インデックスドキュメントのバイト数です。 |
rank |
検索結果におけるこのドキュメントのランクです。 |
author |
可能な場合に HTML、Office および PDF ドキュメントから抽出されます。 |
type |
ドキュメントの MIME タイプです。 |
category |
このドキュメントのインデックス作成時に指定されたカテゴリのリストです。 |
categoryTree |
このドキュメントのインデックス作成時に指定された、カテゴリの階層ツリーまたはカテゴリのシリアルリストです。単一のツリーだけが返されます。 |
summary |
cfindex によって作成される自動要約の内容です。 |
recordCount |
レコードセットで返されるレコードの数です。 |
currentRow |
cfoutput により処理されている現在の行です。 |
columnList |
レコードセット内の列名のリストです。 |
recordsSearched |
検索されたレコードの数です。これは、レコードセット内の各行について同じ値です。ステータス構造体内の searched キーに対応します。 |
ステータス構造体キー
変数 |
説明 |
---|---|
found |
検索条件に一致するテキストが含まれているドキュメントの数 |
searched |
検索されたドキュメントの数。検索結果の recordsSearched 列に対応します。 |
time |
検索に要した時間(ミリ秒単位)です。 |
suggestedQuery |
より適切な結果が得られる可能性がある代替クエリーです。検索語のスペル修正などが行われます。suggestions というタグ属性で指定した条件が満たされた場合にのみ提示されます。 |
keywords |
基本設定の順序に最大 5 つの代替用語を設定可能な配列へのキーワードとなる検索語を含む構造体です。suggestions 属性の条件が満たされる場合にのみ存在します。 |
keywordScore |
keywords の場合と同じ形式の構造体です。 |
例
<!--- #3 (search by CF key) -----------------------------> <cfsearch name = "book" collection = "custom_book" criteria = "cf_key=bookid2" maxrows = "100"> <cfoutput> url=#book.url#<br> key=#book.key#<br> title=#book.titleE#<br> score=#book.score#<br> custom1=#book.custom1#<br> custom2=#book.custom2#<br> summary=#book.summary#<br> recordcount=#book.recordcount#<br> currentrow=#book.currentrow#<br> columnlist=#book.columnlist#<br> recordssearched=#book.recordssearched#<br> </cfoutput> <cfdump var = #book#>