これは私の検索結果プロジェクトの一部です。その中には、複数のテーブルから説明が返されています。その部分はすべて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語に制限しているため、表示されている説明にその単語が含まれていません。これにより、すべての説明のサイズが同じように見えます。ただし、キーワードが説明のさらに下にある場合は、結果の有効性を証明するのに役立ちません。
質問は?私はこれを非常に明確にしたと思います。
Coldfusion8Standardを使用しています。これを開発サーバーでテストしています。
ありがとうございました...