SQL Server, Full Text Indexing, And ASP.NET Parameterized Queries

Aug 12, 2006

I've been driving myself nuts trying to get a sensible product search
going. The existing live site search is just a LIKE %searchterm% on
the Title field in our Products table. Fast, but not great ;) Talks
between IT and Marketing have resulted in this being the desired
results and order:

Exact Title match
Substring Title match
Substring Keywords match
Substring Description match

OK, I can easily do this with UNION queries using LIKE (and a virtual
"weight" column in each query), but the query takes too long. So I'm
trying out SQL Server full text indexing, in an attempt to get the
speed up (and the natural language stuff is just plain cool).

Where I'm running into problems is doing a FULLTEXT match on
Description. It seems that to do a phrase match (e.g. "new york"
should match only Descriptions where the phrase "new york" occurs) I
need to enclose the search term in quotation marks in the query (or
maybe single AND double quotes).

But using parameters in ASP.NET (which I'm supposed to do to avoid SQL
injection attacks, yes?) I don't really have full control of the
quoting - ASP.NET and/or SQL Server automagically quotes strings for
me before passing them into the query. I think.

For example, this doesn't find any description matches:
==========================================
Declare @theSearchTerm varchar(100), @theSearchTerm1 varchar(100)

set @theSearchTerm = "new york"
set @theSearchTerm1 = "%new york%"

SELECT m.TitleCode, m.ShortName, m.ShortDescription, 50 as theWeight
FROM Product m(NoLock)
WHERE m.ShortName = @theSearchTerm

UNION

(SELECT m.TitleCode, m.ShortName, m.ShortDescription, 40 as theWeight
FROM Product m(NoLock)
WHERE m.ShortName LIKE @theSearchTerm1)

UNION

(SELECT m.TitleCode, m.ShortName, m.ShortDescription, 30 as theWeight
FROM Product m(NoLock)
WHERE CONTAINS(*, '"@theSearchTerm"'))

ORDER BY theWeight DESC, m.ShortName
==========================================

But this one (where I put in the actual string instead of using the
parameter) *does* get the desired results, including matches in the
Description:
==========================================
Declare @theSearchTerm varchar(100), @theSearchTerm1 varchar(100)

set @theSearchTerm = "new york"
set @theSearchTerm1 = "%new york%"

SELECT m.TitleCode, m.ShortName, m.ShortDescription, 50 as theWeight
FROM Product m(NoLock)
WHERE m.ShortName = @theSearchTerm

UNION

(SELECT m.TitleCode, m.ShortName, m.ShortDescription, 40 as theWeight
FROM Product m(NoLock)
WHERE m.ShortName LIKE @theSearchTerm1)

UNION

(SELECT m.TitleCode, m.ShortName, m.ShortDescription, 30 as theWeight
FROM Product m(NoLock)
WHERE CONTAINS(*, '"new york"'))

ORDER BY theWeight DESC, m.ShortName
==========================================

Trying various permutations of quotes around the parameter gives me
either syntax errors or undesirable results.


Has anybody tried this sort of thing? How did you do it?

Thanks,

Greg Holmes

View 4 Replies


ADVERTISEMENT

Full-text Indexing In SQL Server 2005

Jan 5, 2008

in object explorer ,do right-click on database and is selecting preoperties and is selecting "files" page "use full-text indexing" ckeck box is disable.
how can enabled this check box?
thanks , mohsen

View 1 Replies View Related

Full Text Indexing Feature Of SQL Server .

Mar 9, 2004

I am using the full text indexing feature of SQL Server .

I have indexed two text fields in the Content table and two other text fields in the ContentDetail table

The select queries are shown below for the two seperate calls.

I want to be able to show the results based on the rank ( The column that has the best match for the searched key ).

Since I am getting two different RANK arrays from the two calls, can i resort them in the code to get the new rank order to show the results in the screen



SELECT KEY_TBL.RANK,FT_TBL.Description, FT_TBL.Title
FROM Content AS FT_TBL
INNER JOIN
CONTAINSTABLE( Content, * ,
'ISABOUT (Cancer weight(1),Survivor weight(1), Shared weight(1), Story weight(1))' ) AS KEY_TBL
ON FT_TBL.ContentID = KEY_TBL.[KEY]
ORDER BY KEY_TBL.RANK DESC


SELECT KEY_TBL.RANK,FT_TBL.Description, FT_TBL.SubTitle
FROM ContentDetail AS FT_TBL
INNER JOIN
CONTAINSTABLE( ContentDetail, * ,
'ISABOUT (Cancer weight(1),Survivor weight(1), Shared weight(1), Story weight(1))' ) AS KEY_TBL
ON FT_TBL.ContentDetailID = KEY_TBL.[KEY]
ORDER BY KEY_TBL.RANK DESC

View 2 Replies View Related

SQL Server 2005 Full-text Indexing Problem

Dec 16, 2005

I just installed SQL Server 2005 and need to create a full-text indexing. I looked up how to do it, but the full-text indexing option is ghosted so i don't even have the option to enable it...any ideas? I tried searching for hours with no luck.

View 1 Replies View Related

Question About Proximity (NEARness) With Full Text Indexing On SQL Server 7

Aug 1, 2005

Hello group,Does anyone know how near a word needs to be to another word to beincluded in the results of a CONTAINS search that uses NEAR? Is thissetting adjustable? Is is stored in the registry? INI or config file?I'm using SQL Server 7 SP3.Thanks,Kelly GreerJoin Bytes!replace nospam with yahoo

View 2 Replies View Related

Full Text Indexing Using Sql Server 2005 Express Edition

Apr 2, 2007



Hi everyone,



Can someone help me out in providing guidelines towards how to do full text indexing using sql server 2005 express edition?



Thanks in advance



Regards,



Dave

View 1 Replies View Related

Adobe IFilter 5 && SQL Server 2000 Full Text Indexing Of PDFs?

Mar 10, 2004

hi all! i'm new and hoping you might help me - have searched E V E R Y W H E R E for this answer!!

--my ASP program is running on IIS box (call it "Lucy")

--my ASP program connects to SQL Server 2000 db on another box (call it "Linus") consisting of .doc, .xls, .PDF and the like

--all's well EXCEPT when PDFs are returned! sometimes browser gives blank screen instead of PDF <?> i figure iFilter will "cure" this.

--question:
WHICH SERVER should iFilter be installed on? Lucy (where IIS is running & ASP program is) or Linus (where SQL Server does its full text indexing)?

thanks in advance for any & all help!!
geekgirl

View 2 Replies View Related

Searching Database Text W/o Using Full-text Indexing

Mar 31, 2004

I am using the following plumbing code to search a database column for a keyword. I can't use full-test indexing so I came up w/ this work around. But It has many flaws so I'm looking for a better way. Thx in advance.

'Open sql connection
SqlConnection1.Open()

Dim datareader2 As SqlClient.SqlDataReader
datareader2 = cmdFindRowsWithKeyword.ExecuteReader
Dim strMsg As String
Dim intRowToFlag As Integer
Dim strRowsToGet As String
Dim strKeywordAsTyped As String
Dim strKeywordAllCaps As String
Dim strKeywordAllLower As String
Dim strKeywordFirstLetterCap As String
Dim FirstLetter As String

While datareader2.Read

intRowToFlag = datareader2(0).ToString
strMsg = datareader2(1).ToString

'Assign keyword as typed to variable
strKeywordAsTyped = txtSearchFor.Text
'Assign keyword as typed to variable then convert it to all uppercase
strKeywordAllCaps = txtSearchFor.Text
strKeywordAllCaps = strKeywordAllCaps.ToUpper
'Assign keyword as typed to variable then convert it to all lowercase
strKeywordAllLower = txtSearchFor.Text
strKeywordAllLower = strKeywordAllLower.ToLower
'Assign keyword as typed to variable then convert it so just the first letter is in uppercase
strKeywordFirstLetterCap = txtSearchFor.Text
FirstLetter = strKeywordFirstLetterCap.Chars(0)
FirstLetter = FirstLetter.ToUpper
strKeywordFirstLetterCap = strKeywordFirstLetterCap.Remove(0, 1)
strKeywordFirstLetterCap = strKeywordFirstLetterCap.Insert(0, FirstLetter)

'If the string contains the keyword as typed in all caps all lowercase or w/ the 1st letter in caps then flag that row.
If strMsg.IndexOf(strKeywordAsTyped) <> -1 Or strMsg.IndexOf(strKeywordAllCaps) <> -1 Or strMsg.IndexOf(strKeywordAllLower) <> -1 Or strMsg.IndexOf(strKeywordFirstLetterCap) <> -1 Then

cmdFlagRowsWithKeyword.Parameters("@recid").Value = intRowToFlag
SqlConnection2.Open()
Dim datareader3 As SqlClient.SqlDataReader
datareader3 = cmdFlagRowsWithKeyword.ExecuteReader
datareader3.Close()
SqlConnection2.Close()

End If
End While
datareader2.Close()

View 2 Replies View Related

Full Text Indexing

Sep 30, 2007

full text indexing
Hi,
In SQL Server 2005, if I set full text indexing enables in column MyDesc and
1. use “Select * from MyTable where MyDesc LIKE ‘%abc%’â€? would this be using full text indexing? Or  have to use Contains to get it be in use?
2. Once I create the full-text index, should I be setting it to populate periodically? Isn’t it populating itself? 
 

View 2 Replies View Related

Full-text Indexing

Jan 6, 2008

right-click do on database and selected properties,selected files page check box "use full-text indexing" is disable.
how can enable check box above  for sql server 2005 on windows xp?
thanks,mohsen
 
 

View 2 Replies View Related

On The Fly Full-Text Indexing

Mar 5, 2008

How might it be possible to have on the fly full-text indexing utilizing the FREETEXT and CONTAINS statements so that when I enter a piece of data into the database it is immediatly searchable using the full-text indexing features?

View 4 Replies View Related

Full Text Indexing

Oct 2, 2005

Hello,I wanna learn Full Text Indexing feature in MS SQL, Please let me know where could i have a good resource about it. I tried google but i didnt find what i need.regards

View 4 Replies View Related

Full Text Indexing

Apr 1, 2002

Recently the full text catalogs no longer work on my sql server. We have tried a lot of different things to get them working and all have failed. I am totally at a loss. The service is running under the local admin and the local admins have sysadmin permissions. We have removed the catalogs and re-added them. We have removed the catalogs changed the DB to disable full text indexing. Checked the registry for the left over entries. Run sp_fulltext_service 'clean_up'. We have tried many difference combinations and tried restoring from backup. Nothing works. If anyone has ANY ideas I would greatly appreciate the help. We are running SQL 7.0 with SP3.

Scott

View 1 Replies View Related

Full Text Indexing

Aug 29, 2003

I have a SQL Server Instance on my workstation (Windows XP Pro) I'm trying to use the Full Text Indexing - but the stupid thing is greyed out in my enterprise manager. Any one know anything I can try?

View 2 Replies View Related

Full-Text Indexing

Jul 13, 2004

I have a table of product inventory I want to be able to search using the CONTAINS and/or FREETEXT functions. There are actually 4 columns I want to be searchable: brand, product name, etc. Since the table can have only one full-text index, should I just define an index on all 4 columns? It would be large in relation to the table, but the table itself is small (~600 rows). The index would not exceed the 900 byte limit.

Will this give me problems in terms of workability or performance? Is there a better approach? I could also just use LIKE searching, but it's significantly less sophisticated.

Thanks in advance.

View 1 Replies View Related

Full-Text Indexing

Dec 21, 2005

Hi,
I am working on programming a knowledge base using ASP and MS SQL and we're running into the problem of how to search it... In that past we've just had a type of like statement... but this isn't really a search function and isn't really doing the trick...

So, what I'm thinking is that we might be able to use the full-text indexing service on Microsoft SQL server and then somehow search the full-text index from an ASP page and then procede with the db interface from there.

Are there better ways of searching MS SQL databases which I'm not aware of? Is it possible to access the full-text index from an ASP page and how would you do this? Are there documents that people could recommend on how to setup full-text indexing on MS SQL Server?

Thank you in advance, ( )

Zakir

View 1 Replies View Related

Full Text Indexing

Mar 7, 2005

I'd like to incrmentally populate my products full text catalogue everytime a product is added, i'm using the following code:

exec msdb.dbo.sp_fulltext_catalog [ @ftcat = ] 'Products'
, [ @action = ] 'start_incremental'
[ , [ @path = ] 'C:Program FilesMicrosoft SQL ServerMssqlFtdata' ]

I get the syntax error Line 166: Line 166: Incorrect syntax near 'Products'.

what is wrong with the code? Any help would be appreciated

View 1 Replies View Related

Full Text Indexing

Jul 6, 2007

Dear experts,
what exactly is full text indexing? and how that was useful......


i've seen this concept while creating databases

View 1 Replies View Related

Full-text Indexing

Jul 20, 2005

Hello,Is there a query or a method that can return the list of all theindexed words in a column that has been full-text indexed in sqlserver 2000? I need to get the words returned above in aContainstable[] query on another column to get a rank that can suggesta degree of similarity between the two.Thanks,J

View 1 Replies View Related

Full Text Indexing

Apr 29, 2006

is there a way to enable full text indexing on SQL Server 2005 Express?

i know that the advanced edition can do so, but i am wondering if there is a registry hack or something that i can use instead of reinstalling.

any ideas?

thanks

View 3 Replies View Related

Full-text Indexing

Sep 22, 2006

Hello everyone,

My questions are about installation (setup) and perfromances.

I have seen that, by default, all database user's files are set to : Use full-text indexing.

If we don't use full-text search at all, would it be a good idea to turn it off?

It seem impossible to turn it off at database creation using the T-SQL : CREATE DATABASE statement. Is it?

Having this parameter set to ON by default must incur an overhead. Rigth?

Best regards.

Carl

View 1 Replies View Related

Full Text Indexing On A Table

Dec 31, 2007

I am using sql server express edition and when  i try to apply full text indexing on the table - the setting is set to "NO" and i am unable to set it to Yes
please advise - thanks Jeff

View 2 Replies View Related

Full-Text Indexing Error

Apr 4, 2008

Trying to make a full-text table of a few tables in SQL server 2000 using the SQL Server Managment Studio. I am getting the following error when I then try to view the columns using the table. The column it is having a problem with is just a varchar text column. I have tried a few different tables and each time it has a problem with one of the columns. It does not give me an error when creating the full-text table. Anyone have any information on this?
 I check on a full text table I made a while ago and it is giving me the same error but searches on it seem to be working, but cannot tell if it is using the one column it is having an issue with.
 
Property TypeColumnName is not available for FullTextIndexColumn '[MyColumnName]'.    This property may not exist for this object, or may not be retrievable due    to insufficient access rights.  (Microsoft.SqlServer.Smo)

View 2 Replies View Related

Full-text Indexing Not Enabled

May 9, 2008

I´m trying to enable full-text indexing in SQL Server Management Express 2005.
I can see the option is there (Database name - Properties - Files), but the options is blurred and I´m not able to select it.
How do I solve this problem?
Getting desperate trying now... 
 
 
 

View 2 Replies View Related

Full-Text Indexing: Best Practices?

Oct 4, 2005

Hey guys,

I'm about to deploy full-text searching to complement
ASP.NET/C#.NET.  I unfortunately have not had much experience in
Full-Text Indexing...

I will be creating catalogs for each table in the database (end-users
pretty much require that we are able to search by
anything).   I see that there is a catalog population
schedule...typically, what is the best practice for updating the
catalogs?  The database entries will most likely be updated
frequently, as it contains the end-users curriculum vitae.  Would
once a day, say midnight, be a sufficient schedule?

And also, as it pertains to best practices, is the method I am applying
the best way to do this (a catalog per table)...I have about 30 tables
in a relational model...is there a better way to catalog the entire
thing instead of table by table?

Thanks a lot for the help!

Eric...

View 3 Replies View Related

Full-text Indexing Wizard

May 3, 2001

I'm getting the following error while trying to setup full-text searching.

"The Microsoft Search service cannot be administered under the present user account"

Search service is using "Local account" to start
I'm logged into the server w/ "sa" right now.

Thanks for any help

View 1 Replies View Related

Problem With Full Text Indexing.

Jun 29, 2001

I was trying Full text indexing on my database. it seems to work fine on all databases except one. On one particular database it returns '0 results' immediately even though the table has a large number of records.
The search returns just fine if tried on the same table on a different database on a different server.

Does anyone have a faintest clue as to what could be wrong ?
please reply ASAP.

Thanks

Kedar

View 1 Replies View Related

Full Text Indexing Question

Oct 11, 2000

I am having a few tables in my database on which I am implementing
FullText Searching.
As the tables are huge, full population of the catalog takes a lot of time.
I want to go for incremental population but I did not have a timestamp column
for this purpose when I initially designed the database.
Is there any way to ensure incremental population without the timestamp column? Because of the design constraints I do not like to have a timestamp column and would like to avoid it if it is possible.
But with out that SQL performs a full population and it is taking more than two hours now for full population and I also have several databases on which I have to do the same but the structure is more or less the same.
What are the performance issues when users are accessing the database when full text catalog population is in progress?Does it slow down reads and writes?It is a web based application for the internet catalog for industrial suppliers and needs to be online with no performance degradation.
Any help and info on this is greatly appreciated.

Thanks
Sushruth Nanduri.

View 1 Replies View Related

Full-Text Indexing Disabled?

Apr 22, 1999

I'm attached to two different SQL 7 servers and neither one has the options enabled for full-text indexing. I am the DBO for those databases and the services are running.

Any ideas what's missing? I'm using SQL 7 clients tools on my NT Workstation.

Also, are there samples of using the index/search within ASP?

View 1 Replies View Related

Full-Text Indexing Problem

Jan 22, 2002

I've created a Full-Text index on a table using Enterprise Manager. I've followed all of the steps outlined in BOL but I can't seem to get it to populate. Any ideas on what I'm doing wrong.

Sidney Ives
Sentara Healthcare
Norfolk Virginia

View 1 Replies View Related

Indexing,full Text Searching

Dec 30, 2005

hello friends..

do indexing and full text searching needs cideamon.exe ?

cideamon exe eats much cpu.I want to disable it but I am afraid that disabling cideamon.exe affects mssql indexes to work.

thanks

View 3 Replies View Related

Full Text Indexing Question

Jan 5, 2005

Hi,

I am using full text indexing to index an image column where I am storing HTML documents. Currently I have an extra column in my table storing the file extension (htm) so the indexer knows which filter to use for every row.

HTML is the only format I'll be indexing, so is there a way for me to set this somewhere else so I don't have to have a column full of htm values - this seems really wasteful, those htm's add up when there are millions of rows...

Thanks!
Rob

View 2 Replies View Related

Full Text Indexing Question

Nov 29, 2007

If I have a table which has multiple child rows in another table, how I can index both tables to search the parent row, and all child rows in one go for a given term?

View 4 Replies View Related







Copyrights 2005-15 www.BigResource.com, All rights reserved