由於Verity的決定主要是基於的標準出現的次數相關,以「優先考慮」的結果的一種方式是將SKU多次人爲地附加到索引集合時的「正文」。
您可以在原始SQL查詢中執行此操作,也可以使用ColdFusion在將結果集傳遞給Verity之前使用SKU對結果集進行填充。下面是後一種選擇的例子:
<!--- Get the product data--->
<cfquery name="qProducts" datasource="blog">
SELECT
ID
,SKU
,title
,description
FROM
products
</cfquery>
<!--- Massage the data to prioritise the SKU by creating a new query from the original --->
<cfset qProductsForIndex = QueryNew("ID,title,body","Integer,VarChar,VarChar")>
<cfloop query="qProducts">
<cfset QueryAddRow(qProductsForIndex)>
<cfset QuerySetCell(qProductsForIndex,"ID",qProducts.ID)>
<cfset QuerySetCell(qProductsForIndex,"title",qProducts.title)>
<!--- Add the SKU 5 times, separated by a semi-colon --->
<cfset QuerySetCell(qProductsForIndex,"body",qProducts.description & ";" & RepeatString(qProducts.SKU & ";",5))>
</cfloop>
<!--- Pass the massaged query to Verity --->
<cfindex action="REFRESH"
collection="products"
type="CUSTOM"
query="qProductsForIndex"
key="ID"
title="title"
body="body">
注意分號分隔額外的SKU,這確保Verity的將匹配它們作爲獨立出現。
我已經使用了5作爲示例編號,但您可以從2開始並向上調整,直到看到所需的結果爲止。
我會嘗試一下,但我希望在標準的解決方案,而不是操作索引。我已閱讀文檔[http://livedocs.adobe.com/coldfusion/8/htmldocs/help.html?content=Tags_r-s_13.html],但我很難找到我需要做的事情那裏。 – cjohansson 2011-05-06 08:40:10