好的,这是我的搜索结果项目的一部分,在其中,我有从多个表返回的描述。所有这部分工作 100%。
我目前使用一个 trim_text 函数,我传递一个字符串,以及我想保留多少个单词。
但是,现在我需要对其进行修改以确保关键字/搜索词在返回的描述中,以帮助在搜索结果中显示其有效性。
下面是现有的 trim_text 函数,我需要你的帮助来修改。
<cffunction name="trim_text" output="false" access="remote" returntype="string">
<cfargument name="string" type="string" required="true">
<cfargument name="word_limit" type="integer" required="false">
<cfparam name="word_limit" default=20>
<cfparam name="snippet" default="">
<cfparam name="return_string" default="">
<cfset return_string = "">
<cfset return_string = reReplace( string, "</?\w+(\s*[\w:]+\s*=\s*(""[^""]*""|'[^']*'))*\s*/?>", " ", "all" ) />
<cfset return_string = reReplace( trim( return_string ), "\s+", " ", "all" ) />
<cfset snippet = reMatch( "([^\s]+\s?){1,#word_limit#}", return_string ) />
<cfif !arrayLen( snippet )>
<cfreturn "" />
</cfif>
<cfset charCount = listlen(snippet[1]) />
<cfset wordCount = ( (word_limit * (arrayLen( snippet ) - 1)) + listLen( snippet[ arrayLen( snippet ) ], " " ) ) />
<cfif charCount gt 190>
<cfreturn left(snippet[1],190) & "..." />
</cfif>
<cfset return_string = snippet[1] & "..." />
<cfreturn return_string />
</cffunction>
所以我的最终目标是包含关键字的描述。
举个例子。
假设我正在搜索关键字“业务”
我得到了正确的搜索结果,但是描述中没有显示的描述中的那个词,因为我们通过 trim_text 函数将描述限制为 25 个词。它使所有描述的大小看起来都相似。但无助于证明关键字在描述中更靠后的结果的有效性。
任何问题?我希望我说得很清楚。
我正在使用 Coldfusion 8 标准。我正在我的开发服务器上对此进行测试。
谢谢你...