Jump to content

Archived

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

chico1st

full text search accuracy

Recommended Posts

okay i have a full text search, it works, and here is the query
$query = "SELECT news.newsID, news.name AS news, news.abstract, news.fulltext, date.name AS date, author.name AS author,
              MATCH(news.name, news.abstract, news.fulltext)
              AGAINST ('$searchstring') AS score FROM news, date, author
              WHERE MATCH(news.name, news.abstract, news.fulltext)
              AGAINST ('$searchstring')
  AND date.dateID = news.dateID AND author.authorID = news.authorID
  ORDER BY score DESC";

but even if i know a certain word is in the entry im searching, often i wont get any articles coming up as results.

Is there anything that might cause this like the 50% threshhold? or blocked words?

for instance if I search 'database' i get a result, yet right next to it is the word 'available' but if i type that in there are no results

Any idea why?

ALSO!  if i want to make a certain field more sensitive would I have to make it its own table.. like a title table? or can i just choose to search that field? i know i have to have the same fields in my select as are in my index table so i cant just not include a field as far as i know



THANKS!

Share this post


Link to post
Share on other sites
The refman has all sorts of details about the nuances of FULLTEXT searching -- if your keyword matches too many things, it won't "match".  And yes, there are stopwords, and other things like that.  The best way is to make your own index.

Share this post


Link to post
Share on other sites
well i did make my own index but i want to be able to search the title OR the abstract OR the fulltext

okay.. well that just means that the inaccuracy is out of my control :P which is good news... take that users!

Share this post


Link to post
Share on other sites
ive noticed that i can make more than one index. the one that the search seems to default to is 'full_index' can i make more than one index then just point my search at different index's?

also i eliminated  the text area and just left the title, abstract,... 4 fields in total... it officially doesnt work.. but there is no error

here is the query:
$sql = "SELECT research.researchID, research.name AS research, research.coresearch, research.affiliation, research.abstract,
research.fulltext, date.name AS date, author.name AS author,
              MATCH(research.name, research.abstract, research.coresearch, research.affiliation)
              AGAINST ('$searchstring') AS score FROM research, date, author
              WHERE MATCH(research.name, research.abstract, research.coresearch, research.affiliation)
              AGAINST ('$searchstring')
  AND date.dateID = research.dateID AND author.authorID = research.authorID
  ORDER BY score DESC";
this is what its searching:
 
research name: More crazy research
abstract: The plague is bad
co-researcher: botton
affiliation: school

it has 9 words to search and if i type in any of them it wont find the article.. are all the words occuring too often?

Share this post


Link to post
Share on other sites
It also depends on how many records there are to search... FULLTEXT works best on thousands of records.

Share this post


Link to post
Share on other sites

×

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.