Jump to content

multiple keyword search order


poelinca

Recommended Posts

create table keyword_relevance

( id tinyint not null primary key auto_increment

, Description longtext

);

insert into keyword_relevance (Description) values

('Hello world')

,('hello friends from around the world')

,('friends from around the world')

,('hello my friends')

,('the keyword is not present');

 

 

Oki so up until now i was retreving my search results by "SELECT description FROM keyword_relevance WHERE description REGEXP '(hello|world)';"

 

Now i need to order this result based on the occurence of the search keywords , the more different keywords found in one row the higher will "rank" in the search result query . Question is , can it be done from the sql query ? or do i need to work the php bit to search for each keyword in a different query then test they'r id's and ...

Link to comment
https://forums.phpfreaks.com/topic/193815-multiple-keyword-search-order/
Share on other sites

  • 4 weeks later...

CREATE TABLE `ci_articles` (

  `id` int(11) NOT NULL auto_increment,

  `title` varchar(255) default NULL,

  `content` longtext,

  `date` int(11) default NULL,

  `author` varchar(255) default NULL,

  `cat` int(11) default NULL,

  `is_page` tinyint(4) default NULL,

  `permalink` varchar(255) default NULL,

  `page_desc` varchar(255) default NULL,

  `page_key` varchar(255) default NULL,

  PRIMARY KEY  (`id`),

  FULLTEXT KEY `title` (`title`,`page_key`,`page_desc`,`permalink`)

) ENGINE=MyISAM AUTO_INCREMENT=31 DEFAULT CHARSET=utf8

 

 

running the query

SELECT * FROM ci_articles WHERE MATCH(title, page_key) AGAINST('sasa')

 

produces

Error Number: 1191

 

Can't find FULLTEXT index matching the column list

 

CREATE TABLE `ci_articles` (

  `id` int(11) NOT NULL auto_increment,

  `title` varchar(255) default NULL,

  `content` longtext,

  `date` int(11) default NULL,

  `author` varchar(255) default NULL,

  `cat` int(11) default NULL,

  `is_page` tinyint(4) default NULL,

  `permalink` varchar(255) default NULL,

  `page_desc` varchar(255) default NULL,

  `page_key` varchar(255) default NULL,

  `search_content` longtext NOT NULL,

  PRIMARY KEY  (`id`),

  FULLTEXT KEY `title` (`title`,`page_key`)

) ENGINE=MyISAM AUTO_INCREMENT=31 DEFAULT CHARSET=utf8

 

 

running the query

SELECT * FROM ci_articles WHERE MATCH(title, page_key) AGAINST('sasa')

 

produces

Error Number: 1096

 

No tables used

 

SELECT *

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.