これは、cfsearch を使用する最初の試みです。以下のコードは、ColdFusion 10 を搭載した開発サーバーと、以前に作成したコレクションで動作しています。
これを取得して一貫した結果を返す唯一の方法は、cfindex と cfsearch の間に「スリープ」を置くことです。そうしないと、90% の確率で検索結果が返されず、場合によっては一部またはすべての結果が返されません。私のクエリには 3 つのレコードしかなく、コレクションは最適化されています。
これは頻繁に変更されるビジネス ディレクトリであるため、コレクションを更新することが重要です。
<form action="search.cfm" method="get">
<input type="text" name="searchFor">
<input type="submit" value="Search">
</form>
<cfquery name="qryData" datasource="#session.DataSource#">
SELECT biz_id, biz_name, biz_city, biz_state, biz_county
FROM biz
WHERE user_level > 0 AND user_level < 99
</cfquery>
<cfindex collection="mySearch" action="refresh" body="biz_name,biz_city,biz_state,biz_county" key="biz_id" query="qryData">
<cfset sleep(100)>
<cfsearch name="search" collection="mySearch" criteria="#url.searchFor#" maxrows="100">
<cfdump var="#search#">