views:

75

answers:

2

I have an asp.net web application written in C# using a SQL Server 2008 database. The database contains events with information across a number of tables such as event, venue, city and bands playing.

In the ideal world I'd like my users to enter a natural lanaguage type query in a single search box along the lines of "The Who in Brisbane". I dont however have a huge amount of time to spend on this so am open to simpler suggestions.

After struggling to find information on full text search in sql server I am asking is this the best option to use or is there better / easier methods out there?

A: 

"English Query" was built into SQL Server 2000, but it has since drifted into obscurity. I don't think there is anything out of the box to do natural language queries anymore. There are products out there, but as you can imagine, it's not an easy problem.

If you want to do something "simpler", try and give some canned queries that the user can choose. Something like ...

Who lives in [Dropdown of Cities]?

That only works if you can anticipate the common requests.

JP Alioto
+2  A: 

I would say that if you're after a quick to develop solution free text search is probably the way forward. You could create a view with all of your joins, index that and then use free text search.

What it won't do though is the natural search so in your example a band called Brisbane playing in who would get returned. Writing a natural search could get complicated quickly.

Perhaps for simplicity do a series of fields such as x playing in x at x and default it to anyone playing in anywhere at any venue, and only search for the band, town or venue if they enter something other than the default.

Steve Temple
Yeah this is the sort of thing i was looking for.
Luke Lowrey