I've implemented a fulltext search for one of our products. I'm using the CONTAINS/CONTAINSTABLE keyword for searching. But the problem is, that i often get syntax errors, because of wrong search conditions/input.
Is there a simple way to make the fulltext search enduser freandly, or do i have to build my own preparser before executing the search. For example splitting the search with a shunting yard and build a complete new search string?
It would be nice, if there is a more simple way, like SAP Sybase SQL Anywhere provides (They have a nice, robust fulltext search/index).
Thank you!
I've previously used Michael Coles article "A Google-like Full Text Search" to help me create a user friendly ASP.Net front-end to SQL Server FTS. The article goes into a good level of detail about how he uses Roman Ivantsov's Irony .NET Compiler Construction Kit to 'compile' a modified Google search syntax into a SQL Server FTS CONTAINS query. You don't have to understand it all though - there's a sample download that will get you going as long as you've got basic C# .Net skills.
I was very pleased with the result and the users were very pleased that they could do full text searches using a syntax they were already familiar with.
Hope this helps,
Rhys
Related
A lot of things are customizable in SQL Server Full Text search:
Change the Thesaurus per language
Change the stoplist
Install different word-breakers and filters
But I can't find an option to change the stemming per language. The title in this link suggests there is a way, but the article does not explain how. Is it possible?
I was wondering because stemming does not seem to be working very well for every language.
Stemming is configured per language via the registry. Here is an example for changing it for English. https://learn.microsoft.com/en-us/sql/relational-databases/search/change-the-word-breaker-used-for-us-english-and-uk-english
We are desperate to switch over to Lucene (via Solr), but one big issue we have is the syntax support.
dtSearch supports xfirstword, w/N, pre/N, and probably some others.
I think w/N can be ported to Lucene, but the other ones I have no idea how to port.
I did a search and found an article that claims they have made the switch--still using dtSearch syntax, but I have yet to get the source. I left a comment about getting the source, but no response yet.
What do you guys recommend?
We basically want Solr with dtSearch syntax.
Do you have any good articles on how to specifically add features to indexing, etc. needed to accomplish these features?
Since I wasn't able to find a good solution to this, I wrote a dtSearch parser in Antlr4.
Many of you have asked for it, so I've posted it to GitHub.
Here's the link:
https://github.com/blmille1/dtsearchparser
I have a static collection of over 300,000 text and html files. I want to be able to search them for words, exact phrases, and ideally regex patterns. I want the searches to be fast.
I think searching for words and phrases can be done by looking up a dictionary of unique words referencing to the files that contain each word, but is there a way to have reasonably fast regex matching?
I don't mind using existing software if such exists.
Consider Lucene http://lucene.apache.org/java/docs/index.html
There are quite a bunch available in the market which will help you achieve what you want, some are open-source and some comes with pricing:
Opensource:
elasticsearch - based on lucene
constellio - based on lucene
Sphinx - based on C++
Solr - built on top of lucene
You can have a look at Microsoft Search Server Express 2010: http://www.microsoft.com/enterprisesearch/searchserverexpress/en/us/technical-resources.aspx
http://blog.webdistortion.com/2011/05/29/open-source-search-engines/
what is the best place to start learning about SQL Server 2005 Integration services?
I'm looking for links for setup and tutorials on how to get started. I've read I need a toolkit called SSIS designer however I haven't been able to find it on the SQL Server Enterprise ed dvd nor online anywhere. I did come across some links in various forums but they are now broken.
What version of SQL Server are you using? If you're using SQL Server 2000, then you're out of luck: SSIS didn't exist back then, and you don't want to know what did.
SSIS is sufficiently rich and complicated that I would not recommend a "tutorial". I'm afraid I have to recommend you read a book (and follow the exercises!). The one that taught me was Microsoft® SQL Server(TM) 2005 Integration Services Step by Step.
You want to install Business Intelligence Studio from the SQL Server DVD. That installs Visual Studio if you didn't already have it, and also installs the templates and tools necessary to develop in SSIS.
I've found lots of good info at SSIS Junkie (http://blogs.conchango.com/jamiethomson/).
And MS has some interesting web casts.
I liked the well written tutorial at http://www.accelebrate.com/sql_training/ssis_tutorial.htm
give it a try.
Once you get past the basics, this tutorial/example shows how to use looping, variables and expressions to do some cool stuff: http://www.sqlmag.com/Articles/ArticleID/95385/pg/3/3.html
The example is aimed at administration and monitoring, but can be applied to many things.
Looks like it's subscriber only now, but you can get the source.
In a nutshell, you store servernames is a table, put them in an 'object' variable and then loop through them performing whatever actions you'd like.
Your connection to 'source server' changes based on expressions you define in the properties window.
I'd suggest you look at SQLIS.com, it's a great site written by some SSIS experts. There are a number of blogs, and we have some articles at SQLServerCentral.com, though not sure we have a good "get started" series.
PragmaticWorks does a lot of SSIS and I've started to see some details on their blog about the various tasks.
IF you are working on a Business Intelligence project I suggest the white-papers from www.SQLBI.com for reference. If you understand the basic termonology of standard BI practicies, this will present a good set of best practices. It may be a little complex though if you are just starting out.
I have also found the video training provided by vconferenceonline/SSWUG (http://www.vconferenceonline.com/shows/summer09/uvc/sessions.asp?id=2) to be very useful. Not free - but relatively cheap.
How do I transfer the users of a vBulletin forum to a new installation of IceBB?
Presumably, they both have a database back-end of some sort, right? SQL dump, followed by patching stuff up in your favorite scripting language, followed by SQL load, seems do-able.
There is a tool called ImpEx for vBulletin to do exactly this. It imports and exports users and data. Doing the SQL yourself can be error prone and difficult compared to using ImpEx.