Re: [PHP-DB] Re: Search function query

2009-11-01 Thread Kesavan Rengarajan
Please have a look at this page: http://imysql.cn/docs/MySQL_51_en/ch12s07.html 
 .

Hope that is helpful.

Sent from my iPhone

On 02/11/2009, at 1:45 AM, Ron Piggott  
ron.pigg...@actsministries.org wrote:



I have found the concept I am looking for on the mySQL web site:

SELECT MATCH('Content') AGAINST ('keyword1 keyword2') as Relevance  
FROM

table WHERE MATCH ('Content') AGAINST('+keyword1 +keyword2' IN BOOLEAN
MODE) HAVING Relevance  0.2 ORDER BY Relevance DESC

I don't know how to apply this to the 3 fields in the data I want to
search with the users search string ( product_name ,
product_description , keywords )  The search string in the form is
search_string

Could someone show me how to make this work with what I have described
please?

Ron

-Original Message-
From: Ron Piggott ron@actsministries.org
Reply-to: ron@actsministries.org
To: PHP DB php-db@lists.php.net
Subject: Search function query
Date: Sun, 01 Nov 2009 08:38:13 -0500

I am writing a search function.  Is there a way to enhance this  
query so

it will display the best matches first down to the least matches?  As
well I don't know how to handle if the user types in more than 1  
word to

search.

SELECT * FROM `store_product_profile` WHERE `product_name` LIKE '%
$search_string%' AND `product_description` LIKE '%$search_string%' AND
`keywords` LIKE '%$search_string%'

Ron


--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DB] Re: Search function query

2009-11-01 Thread Ron Piggott
I just made a FULLTEXT index on the 3 fields I want to search
(product_name, product_description and keywords) and then created the
mySQL query below with a search for the word postcards.  It didn't
have any results though.  I don't understand why because the word
'postcard' exists in the product_name field a few times.  Any idea what
I have done wrong / or why this is happening?  Ron

SELECT MATCH (
`product_name` , `product_description` , `keywords` 
)
AGAINST (
'postcard'
) AS Relevance
FROM store_product_profile
WHERE MATCH (
`product_name` , `product_description` , `keywords` 
)
AGAINST (
'postcard'
IN BOOLEAN
MODE 
)
HAVING Relevance  0.2
ORDER BY Relevance DESC

-Original Message-
From: Kesavan Rengarajan k...@trk7.com
To: ron.pigg...@actsministries.org ron.pigg...@actsministries.org
Cc: PHP DB php-db@lists.php.net
Subject: Re: [PHP-DB] Re: Search function query
Date: Mon, 2 Nov 2009 03:21:56 +1100


Please have a look at this page: http://imysql.cn/docs/MySQL_51_en/ch12s07.html 
  .
Hope that is helpful.

Sent from my iPhone

On 02/11/2009, at 1:45 AM, Ron Piggott  
ron.pigg...@actsministries.org wrote:

 I have found the concept I am looking for on the mySQL web site:

 SELECT MATCH('Content') AGAINST ('keyword1 keyword2') as Relevance  
 FROM
 table WHERE MATCH ('Content') AGAINST('+keyword1 +keyword2' IN BOOLEAN
 MODE) HAVING Relevance  0.2 ORDER BY Relevance DESC

 I don't know how to apply this to the 3 fields in the data I want to
 search with the users search string ( product_name ,
 product_description , keywords )  The search string in the form is
 search_string

 Could someone show me how to make this work with what I have described
 please?

 Ron

 -Original Message-
 From: Ron Piggott ron@actsministries.org
 Reply-to: ron@actsministries.org
 To: PHP DB php-db@lists.php.net
 Subject: Search function query
 Date: Sun, 01 Nov 2009 08:38:13 -0500

 I am writing a search function.  Is there a way to enhance this  
 query so
 it will display the best matches first down to the least matches?  As
 well I don't know how to handle if the user types in more than 1  
 word to
 search.

 SELECT * FROM `store_product_profile` WHERE `product_name` LIKE '%
 $search_string%' AND `product_description` LIKE '%$search_string%' AND
 `keywords` LIKE '%$search_string%'

 Ron


Re: [PHP-DB] Re: Search function query

2009-11-01 Thread Kesavan Rengarajan

Have you tried removing the HAVING clause?

Sent from my iPhone

On 02/11/2009, at 3:51 AM, Ron Piggott  
ron.pigg...@actsministries.org wrote:


I just made a FULLTEXT index on the 3 fields I want to search  
(product_name, product_description and keywords) and then created  
the mySQL query below with a search for the word postcards.  It  
didn't have any results though.  I don't understand why because the  
word 'postcard' exists in the product_name field a few times.  Any  
idea what I have done wrong / or why this is happening?  Ron


SELECT MATCH ( `product_name` , `product_description` , `keywords` )
AGAINST ( 'postcard' ) AS Relevance
FROM store_product_profile
WHERE MATCH ( `product_name` , `product_description` , `keywords` )
AGAINST ( 'postcard'
IN BOOLEAN
MODE )
HAVING Relevance  0.2
ORDER BY Relevance DESC

-Original Message-
From: Kesavan Rengarajan k...@trk7.com
To: ron.pigg...@actsministries.org ron.pigg...@actsministries.org
Cc: PHP DB php-db@lists.php.net
Subject: Re: [PHP-DB] Re: Search function query
Date: Mon, 2 Nov 2009 03:21:56 +1100

Please have a look at this page: http://imysql.cn/docs/MySQL_51_en/ch12s07.html
  .
Hope that is helpful.

Sent from my iPhone

On 02/11/2009, at 1:45 AM, Ron Piggott
ron.pigg...@actsministries.org wrote:

 I have found the concept I am looking for on the mySQL web site:

 SELECT MATCH('Content') AGAINST ('keyword1 keyword2') as Relevance
 FROM
 table WHERE MATCH ('Content') AGAINST('+keyword1 +keyword2' IN  
BOOLEAN

 MODE) HAVING Relevance  0.2 ORDER BY Relevance DESC

 I don't know how to apply this to the 3 fields in the data I want to
 search with the users search string ( product_name ,
 product_description , keywords )  The search string in the form is
 search_string

 Could someone show me how to make this work with what I have  
described

 please?

 Ron

 -Original Message-
 From: Ron Piggott ron@actsministries.org
 Reply-to: ron@actsministries.org
 To: PHP DB php-db@lists.php.net
 Subject: Search function query
 Date: Sun, 01 Nov 2009 08:38:13 -0500

 I am writing a search function.  Is there a way to enhance this
 query so
 it will display the best matches first down to the least matches?   
As

 well I don't know how to handle if the user types in more than 1
 word to
 search.

 SELECT * FROM `store_product_profile` WHERE `product_name` LIKE '%
 $search_string%' AND `product_description` LIKE '%$search_string%'  
AND

 `keywords` LIKE '%$search_string%'

 Ron


Re: [PHP-DB] Re: Search function query

2009-11-01 Thread Kesavan Rengarajan


The '0' relevance is probably because 'postcard' is present in a lot  
of rows . Try adding more rows with different content and also try  
searching for different products. Your query looks fine to me.

Sent from my iPhone

On 02/11/2009, at 4:53 AM, Ministry Office off...@actsministries.org  
wrote:




Yes.  All the search results have a '0' relevance result.

When I created the FULLTEXT index I made all three fields one index  
with the keyname customer_search --- is my query wrong, should I  
be using 'customer_search'?


Ron

-Original Message-
From: Kesavan Rengarajan k...@trk7.com
To: ron.pigg...@actsministries.org ron.pigg...@actsministries.org
Cc: PHP DB php-db@lists.php.net
Subject: Re: [PHP-DB] Re: Search function query
Date: Mon, 2 Nov 2009 04:11:45 +1100


SELECT MATCH ( `product_name` , `product_description` , `keywords` )
AGAINST ( 'postcard' ) AS Relevance
FROM store_product_profile
WHERE MATCH ( `product_name` , `product_description` , `keywords` )
AGAINST ( 'postcard'
IN BOOLEAN
MODE )