all groups > sql server full text search > november 2006 >
You're in the

sql server full text search

group:

Fulltext Search or Like Search



Fulltext Search or Like Search MattIrwin via SQLMonster.com
11/12/2006 12:27:55 AM
sql server full text search: Hi,
I need to search a Items catalog that has a field that is key word
seperated by commas. Would a fulltext search be more productive than a like
searcn. If the use keys in Bic Black Pens then that is all it should bring
up but if they key in pens it should only get pens. With the like I have been
getting despensers. I don't know exactly how Fulltext search would work for
this.

--
Message posted via SQLMonster.com
http://www.sqlmonster.com/Uwe/Forums.aspx/sql-server-search/200611/1
Re: Fulltext Search or Like Search Hilary Cotter
11/13/2006 12:00:00 AM
Full text for English will break words at white space. So bic black pen
would be broken as three words, bic, black and pen. Dispensers would be
broken as dispensers. In a free text search this would match with
dispensers, dispenser, dispenser's, and dispensers.


--
Hilary Cotter

Looking for a SQL Server replication book?
http://www.nwsu.com/0974973602.html

Looking for a FAQ on Indexing Services/SQL FTS
http://www.indexserverfaq.com



[quoted text, click to view]

Re: Fulltext Search or Like Search Simon Sabin
11/13/2006 12:25:34 AM
Hello MattIrwin

Full text would treat words as words and not return misses as in you case.
You can also use full text to use a thesaurus and have much more complicated
searches, i.e. Pen AND NOT Fountain. Which is much more difficult with LIKE

Simon Sabin
SQL Server MVP
http://sqlblogcasts.com/blogs/simons


[quoted text, click to view]

Re: Fulltext Search or Like Search Allan Ebdrup
1/11/2007 11:11:51 AM
[quoted text, click to view]

I would like to do the opposite.
When searching for "pædagog" I also want to return results that contain
"dagplejepædagog" or "pædagogmedhjælper" is ther no other way to accomplish
this than using LIKE '%pædagog%'.
Performance using LIKE is very poor, how do I improve performance?

Kind Regards,
Allan Ebdrup

Re: Fulltext Search or Like Search Hilary Cotter
1/12/2007 9:26:41 AM
You need to use a word breaker which breaks the words in the form you want,
Greek I take it. Otherwise I think like is your best bet.

--
Hilary Cotter

Looking for a SQL Server replication book?
http://www.nwsu.com/0974973602.html

Looking for a FAQ on Indexing Services/SQL FTS
http://www.indexserverfaq.com



[quoted text, click to view]

Re: Fulltext Search or Like Search Hilary Cotter
1/18/2007 8:07:46 AM
You could be correct here, my knowledge of these languages is not great. The
ligature or digraph æ commonly occurs in Greek words transliterated into
English, but these do appear more German or Scandinavian.

You might want to check out this document for more info.

http://www.simple-talk.com/sql/learn-sql-server/sql-server-full-text-search-language-features/
--
Hilary Cotter

Looking for a SQL Server replication book?
http://www.nwsu.com/0974973602.html

Looking for a FAQ on Indexing Services/SQL FTS
http://www.indexserverfaq.com



[quoted text, click to view]

Re: Fulltext Search or Like Search tbh
1/18/2007 11:19:20 AM
"Greek"? looks a bit more like a scandinavian language, doesn't it? :)

i think Allan is looking for inflectional forms or compound words containing
a stem-word in question. i'm interested too (in my case for German).

can anyone point us to good documentation on which languages are supported
and other details? there is some info here:
http://msdn2.microsoft.com/en-US/library/ms142507.aspx

but i would want to learn more.

cheers,

Tim Hanson

Re: Fulltext Search or Like Search Daniel Crichton
1/18/2007 1:01:24 PM
Allan wrote on Thu, 11 Jan 2007 11:11:51 +0100:

[quoted text, click to view]

The second example is already possible:

SELECT * FROM Table WHERE CONTAINS(*,'pædagog*')

However, the first example isn't. As Hilary has pointed out, there may be a
language dependent wordbreaker that will split the words as you require.

Another option, if you don't mind increasing the storage requirements, is to
index on a reversed version of the data too. Store a copy of the data in
another column in reverse order, such as

KEY Word RWord
1 dagplejepædagog gogadæpejelpgad

and create the FTI on both Word and RWord, then you could use:

SELECT * FROM Table WHERE CONTAINS(*,'pædagog* or gogadæp*')

However, this won't work when the term you are searching for is in the
middle of a word.

Dan

AddThis Social Bookmark Button