Ho un piccolo problema (è quello che spero) con il ranking dei miei risultati di ricerca di ricerca full text nel database mysql. la scrittura ho provato in due modi:Ricerca di testo completo
MODO NATURALE:
SELECT SQL_CALC_FOUND_ROWS *,
MATCH(productname,keywords) AGAINST('$cl_search') AS score
FROM products
WHERE MATCH(productname,keywords) AGAINST('$cl_search')
ORDER BY score DESC,lastupdated DESC;
BOOLEANO WAY:
SELECT SQL_CALC_FOUND_ROWS *,
((MATCH(productname) AGAINST('$cl_search' IN BOOLEAN MODE))+
(MATCH(keywords) AGAINST('\"$cl_search\"' IN BOOLEAN MODE))) AS score
FROM products
WHERE MATCH(productname,keywords) AGAINST('$cl_search')
ORDER BY score DESC,lastupdated DESC;
Mi piace l'indicizzazione ottengo quando cerco in modalità linguaggio naturale, ma come faccio impedire a qualcuno di entrare, ad es. "sacchetto di borsa", come nome prodotto per ottenere buoni risultati di ricerca?
Così ho scritto il modo booleano per risolvere quello, ma 1. è più lento e 2. Non ottengo l'altra indicizzazione di pertinenza del tipo 'rispetto al conteggio delle parole'.
Qualche idea su come ottenere il meglio da entrambi i mondi?