Collections functions
General functions
Render functions
Theme permission functions
Resource functions

suggest_refinement()

Parameters

ColumnTypeDefaultDescription
$refs
$search

Location

include/search_functions.php lines 21 to 40

Definition

 
function suggest_refinement($refs,$search)
    {
    
# Given an array of resource references ($refs) and the original
    # search query ($search), produce a list of suggested search refinements to 
    # reduce the result set intelligently.

    
if (count($refs)==0) {return array();} // Nothing to do, nothing to return
    
$in=ps_param_insert(count($refs));
    
$suggest=array();
    
# find common keywords
    
$refine=ps_query("SELECT k.keyword,count(k.ref) c FROM resource_node rn LEFT JOIN node n ON n.ref=rn.node LEFT JOIN node_keyword nk ON nk.node=n.ref LEFT JOIN keyword k on nk.keyword=k.ref WHERE rn.resource IN ($in) AND length(k.keyword)>=3 AND length(k.keyword)<=15 AND k.keyword NOT LIKE '%0%' AND k.keyword NOT LIKE '%1%' AND k.keyword NOT LIKE '%2%' AND k.keyword NOT LIKE '%3%' AND k.keyword NOT LIKE '%4%' AND k.keyword NOT LIKE '%5%' AND k.keyword NOT LIKE '%6%' AND k.keyword NOT LIKE '%7%' AND k.keyword NOT LIKE '%8%' AND k.keyword NOT LIKE '%9%' GROUP BY k.keyword ORDER BY c DESC LIMIT 5",ps_param_fill($refs,"i"));
    for (
$n=0;$n<count($refine);$n++)
        {
        if (
strpos($search,$refine[$n]["keyword"])===false)
            {
            
$suggest[]=$search " " $refine[$n]["keyword"];
            }
        }
    return 
$suggest;
    }

This article was last updated 3rd October 2022 12:05 Europe/London time based on the source file dated 13th September 2022 17:55 Europe/London time.