Поскольку Verity определяет релевантность в значительной степени на основе количества вхождений критериев, одним из способов «приоритизации» результатов будет искусственное добавление SKU несколько раз к «телу» при индексации коллекции.
Вы можете сделать это либо в исходном запросе SQL, либо использовать ColdFusion, чтобы скомбинировать результирующий набор, чтобы дополнить его SKU перед передачей его Verity. Вот пример последнего варианта:
<!--- 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 и настраивать его вверх, пока не увидите желаемые результаты.