Re: Problem With FulltText Index and VarChar

2005-12-30 Thread Gleb Paharenko
Hello.



 I guess my question is, how do I make sure the full text search is

 being done against the CommentsIDX and not just against the individual

 fields...



If I've got your question right, you shouldn't worry about

it. As far as I know, the search is done against the union of all

columns in the FULLTEXT index, not against individual columns. Even

more, when performing a language natural search (as you do), the row

will be in the result set if at least one field has one word from the

list, however it will have a small relevance. Examples below should

prove my opinion:

  mysql select * from ab;

++-+

| a  | b   |

++-+

| sf sfs | sf s sdfss  |

| sss sss| 3435|

| search | words   |

| sdf sdf 34345  | 35 35435 34535 iwur |

| cool search| NULL|

++-+



mysql select a, b, match(a,b) against('search words') from ab where

match(a,b) against('search words');

+-+---++

| a   | b | match(a,b) against('search words') |

+-+---++

| search  | words |1.7514755725861 |

| cool search | NULL  |   0.39634910225868 |

+-+---++



This shows that the search is done against concatenation of the fields:



mysql select a, b, match(a,b) against('search words') from ab where

match(a,b) against('+search +words' in boolean mode);

++---++

| a  | b | match(a,b) against('search words') |

++---++

| search | words |1.7514755725861 |

++---++











Michael Stearne wrote:

 On 12/28/05, Gleb Paharenko [EMAIL PROTECTED] wrote:

 

Hello.





#1054 - Unknown column 'CommentsIDX' in 'where clause'

My table structure contains:FULLTEXT KEY `CommentsIDX` (`Comments`=

 

 )

 

You should use column names not index names in your queries. Please,

provide CREATE statement for your tables and problematic queries. With

this information it'll be easier to help you.



 

 

 Thanks this is the a snippet of the table structure:

 CREATE TABLE `properties` (

   `id` int(11) unsigned NOT NULL auto_increment,

   `UserID` int(11) unsigned NOT NULL default '0',

   `Type` enum('Commercial','Residential') NOT NULL default 'Residential',

   `Subtype` varchar(64) NOT NULL default '0',

   `Zip` varchar(10) NOT NULL default '',

   `Heading` varchar(84) NOT NULL default '',

   `Address1` varchar(32) NOT NULL default '',

   `Address2` varchar(32) default NULL,

 .

   KEY `TypeSubType` (`Type`,`Subtype`),

   KEY `CityHood` (`City`,`Neighborhood`),

   FULLTEXT KEY `CommentsIDX`

 (`Comments`,`Subtype`,`Heading`,`Zip`,`Address1`,`Neighborhood`,`City`,`Cou=

 ntry`)

 ) ENGINE=3DMyISAM DEFAULT CHARSET=3Dlatin1 AUTO_INCREMENT=3D101131 ;

 

 I guess my question is, how do I make sure the full text search is

 being done against the CommentsIDX and not just against the individual

 fields...

 

 SELECT * FROM properties WHERE MATCH

 (Comments,Subtype,Heading,Zip,Address1,Neighborhood,City,Country)

 AGAINST (

 search words WITH QUERY EXPANSION)

 

 Thanks,

 Michael

 

 



Michael Stearne wrote:



I am trying to do a fulltext search with a multi-field index using MySQ=

 

 L 4.=3D

 

1.15.



When I create a full text index of my Comments field which is of type

TEXT.  I can do a fulltext search fine.



But when I add another field (like a varchar or even Text) to that

index or change the name of the index I get and error like:



SELECT * FROM properties WHERE MATCH (CommentsIDX)

AGAINST (

item1 OR item2 AND (item3 AND item4 NOT (item5 OR item6))

WITH QUERY EXPANSION

)



MySQL said: Documentation

#1054 - Unknown column 'CommentsIDX' in 'where clause'



My table structure contains:FULLTEXT KEY `CommentsIDX` (`Comments`)



Any ideas?



Thanks







--

For technical support contracts, goto https://order.mysql.com/?ref=3Densi=

 

 ta

 

This email is sponsored by Ensita.NET http://www.ensita.net/

   __  ___ ___   __

  /  |/  /_ __/ __/ __ \/ /Gleb Paharenko

 / /|_/ / // /\ \/ /_/ / /__   [EMAIL PROTECTED]

/_/  /_/\_, /___/\___\_\___/   MySQL AB / Ensita.NET

   ___/   www.mysql.com









--

MySQL General Mailing List

For list archives: http://lists.mysql.com/mysql

To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]

 

 .com

 



 



-- 
For technical support contracts, goto https://order.mysql.com/?ref=ensita
This email is sponsored by Ensita.NET http://www.ensita.net/
   __  ___ ___   __
  /  |/  /_ __/ __/ __ \/ /Gleb Paharenko
 / /|_/ / // /\ \/ /_/ 

Re: Problem With FulltText Index and VarChar

2005-12-30 Thread Michael Stearne
On 12/30/05, Gleb Paharenko [EMAIL PROTECTED] wrote:
 Hello.

  I guess my question is, how do I make sure the full text search is
  being done against the CommentsIDX and not just against the individual
  fields...


 This shows that the search is done against concatenation of the fields:

 mysql select a, b, match(a,b) against('search words') from ab where
 match(a,b) against('+search +words' in boolean mode);
 ++---++
 | a  | b | match(a,b) against('search words') |
 ++---++
 | search | words |1.7514755725861 |
 ++---++


Thanks so much for your help.  Everything makes sense.  One this I did
come across though is that if you are using a multi-column index you
have to include all the columns in the index in your select statement.
e.g. MATCH (Comment, heading, ...)

Thanks,
Michael

--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]



Re: Problem With FulltText Index and VarChar

2005-12-29 Thread Michael Stearne
On 12/28/05, Gleb Paharenko [EMAIL PROTECTED] wrote:
 Hello.

  #1054 - Unknown column 'CommentsIDX' in 'where clause'
  My table structure contains:FULLTEXT KEY `CommentsIDX` (`Comments`)

 You should use column names not index names in your queries. Please,
 provide CREATE statement for your tables and problematic queries. With
 this information it'll be easier to help you.


Thanks this is the a snippet of the table structure:
CREATE TABLE `properties` (
  `id` int(11) unsigned NOT NULL auto_increment,
  `UserID` int(11) unsigned NOT NULL default '0',
  `Type` enum('Commercial','Residential') NOT NULL default 'Residential',
  `Subtype` varchar(64) NOT NULL default '0',
  `Zip` varchar(10) NOT NULL default '',
  `Heading` varchar(84) NOT NULL default '',
  `Address1` varchar(32) NOT NULL default '',
  `Address2` varchar(32) default NULL,
.
  KEY `TypeSubType` (`Type`,`Subtype`),
  KEY `CityHood` (`City`,`Neighborhood`),
  FULLTEXT KEY `CommentsIDX`
(`Comments`,`Subtype`,`Heading`,`Zip`,`Address1`,`Neighborhood`,`City`,`Country`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=101131 ;

I guess my question is, how do I make sure the full text search is
being done against the CommentsIDX and not just against the individual
fields...

SELECT * FROM properties WHERE MATCH
(Comments,Subtype,Heading,Zip,Address1,Neighborhood,City,Country)
AGAINST (
search words WITH QUERY EXPANSION)

Thanks,
Michael



 Michael Stearne wrote:
  I am trying to do a fulltext search with a multi-field index using MySQL 4.=
  1.15.
 
  When I create a full text index of my Comments field which is of type
  TEXT.  I can do a fulltext search fine.
 
  But when I add another field (like a varchar or even Text) to that
  index or change the name of the index I get and error like:
 
  SELECT * FROM properties WHERE MATCH (CommentsIDX)
  AGAINST (
  item1 OR item2 AND (item3 AND item4 NOT (item5 OR item6))
  WITH QUERY EXPANSION
  )
 
  MySQL said: Documentation
  #1054 - Unknown column 'CommentsIDX' in 'where clause'
 
  My table structure contains:FULLTEXT KEY `CommentsIDX` (`Comments`)
 
  Any ideas?
 
  Thanks
 


 --
 For technical support contracts, goto https://order.mysql.com/?ref=ensita
 This email is sponsored by Ensita.NET http://www.ensita.net/
__  ___ ___   __
   /  |/  /_ __/ __/ __ \/ /Gleb Paharenko
  / /|_/ / // /\ \/ /_/ / /__   [EMAIL PROTECTED]
 /_/  /_/\_, /___/\___\_\___/   MySQL AB / Ensita.NET
___/   www.mysql.com




 --
 MySQL General Mailing List
 For list archives: http://lists.mysql.com/mysql
 To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]



--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]



Re: Problem With FulltText Index and VarChar

2005-12-28 Thread Gleb Paharenko
Hello.



 #1054 - Unknown column 'CommentsIDX' in 'where clause'

 My table structure contains:FULLTEXT KEY `CommentsIDX` (`Comments`)



You should use column names not index names in your queries. Please,

provide CREATE statement for your tables and problematic queries. With

this information it'll be easier to help you.







Michael Stearne wrote:

 I am trying to do a fulltext search with a multi-field index using MySQL 4.=

 1.15.

 

 When I create a full text index of my Comments field which is of type

 TEXT.  I can do a fulltext search fine.

 

 But when I add another field (like a varchar or even Text) to that

 index or change the name of the index I get and error like:

 

 SELECT * FROM properties WHERE MATCH (CommentsIDX)

 AGAINST (

 item1 OR item2 AND (item3 AND item4 NOT (item5 OR item6))

 WITH QUERY EXPANSION

 )

 

 MySQL said: Documentation

 #1054 - Unknown column 'CommentsIDX' in 'where clause'

 

 My table structure contains:FULLTEXT KEY `CommentsIDX` (`Comments`)

 

 Any ideas?

 

 Thanks

 



-- 
For technical support contracts, goto https://order.mysql.com/?ref=ensita
This email is sponsored by Ensita.NET http://www.ensita.net/
   __  ___ ___   __
  /  |/  /_ __/ __/ __ \/ /Gleb Paharenko
 / /|_/ / // /\ \/ /_/ / /__   [EMAIL PROTECTED]
/_/  /_/\_, /___/\___\_\___/   MySQL AB / Ensita.NET
   ___/   www.mysql.com




-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]



Problem With FulltText Index and VarChar

2005-12-27 Thread Michael Stearne
I am trying to do a fulltext search with a multi-field index using MySQL 4.1.15.

When I create a full text index of my Comments field which is of type
TEXT.  I can do a fulltext search fine.

But when I add another field (like a varchar or even Text) to that
index or change the name of the index I get and error like:

SELECT * FROM properties WHERE MATCH (CommentsIDX)
AGAINST (
item1 OR item2 AND (item3 AND item4 NOT (item5 OR item6))
WITH QUERY EXPANSION
)

MySQL said: Documentation
#1054 - Unknown column 'CommentsIDX' in 'where clause'

My table structure contains:FULLTEXT KEY `CommentsIDX` (`Comments`)

Any ideas?

Thanks

--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]