Solr検索を介して約2kのPDFファイルにインデックスを付け、期待される結果を提供するAdobe ColdFusionアプリケーションが機能していますが、コレクションへの各検索クエリには通常25〜30秒かかります。
これは、2k PDF ファイルを Solr にインデックス付けする方法です。
<!--- query database files --->
<cfset getfiles = application.file.getfiles()>
<!--- create solr query set --->
<cfset filesQuery = QueryNew("
fileUID
, filepath
, title
, description
, fileext
, added
")>
<!--- create new file query with key path and download url --->
<cfoutput query="getfiles">
<cfset ext = trim(getfiles.fileext)>
<cfset path = expandpath('/docs/#fileUID#.#ext#')>
<cfscript>
newRow = QueryAddRow(filesQuery);
QuerySetCell(filesQuery, "fileUID","#fileUID#" );
QuerySetCell(filesQuery, "filepath","#path#" );
QuerySetCell(filesQuery, "title","#filename#" );
QuerySetCell(filesQuery, "description","#description#" );
QuerySetCell(filesQuery, "added","#added#" );
</cfscript>
</cfoutput>
<!--- index the bunch --->
<cfindex
query = "filesQuery"
collection = "resumes"
action = "update"
type = "file"
key = "filepath"
title = "title"
body = "title, description"
custom1 = "fileext"
custom2 = "added"
category= "file"
status = "filestatus">
これは、ファイルが検索される方法と、Solr 検索が行われる場所 (25 ~ 30 秒) です。
<!--- imagine form with (form.search) for terms --->
<cfsearch name = "results"
collection = "resumes"
criteria = "#form.search#
contextPassages = "1"
contextBytes = "300"
maxrows = "100"
contextHighlightBegin = "<strong>"
contextHighlightEnd = " </strong>">
<!--- show (results) query --->
プロジェクトに関する追加情報: すべてのファイルの長さは 1 ページ未満であるため、Solr へのインデックス結果を作成する際に文字の切り捨てはありませんでした。私は ColdFusion Administrator 内で Solr バッファ制限を試してみましたが、時間の大きな変化はありませんでした (現在は 40)。私は、MS Server 2003、1.86 Xeon - Adobe ColdFusion 9.0.1、および 1GB RAM を搭載した開発 VM を使用しています。JVM は Sun Microsystems (14.3-b01) です。サーバー側で実行されているものは他にほとんどないため、パフォーマンスは外部要因の影響を受けません。
期待通りの完璧な結果を提供していますが、タイムリーではありません。