I need to implement Full text search across tables.
what are the different options.
you might be able to Full Text index and indexed view of the tables
Related
I am creating a report in Crystal reports from a set of SQL database tables I have two tables that are to be linked, when I select the two tables and then go to set the links, the field that I need to select for the link in one of the tables is missing from the list of fields in the database expert links tab. Upon further inspection a number of fields are missing, there doesn't seem to be any specific field type or order or reason to why these fields are missing. I also found if I just use that one single table to create a report, all fields show in the field explorer. Also if I use the two tables and select a different available field to link the tables, all of the fields show in the field explorer. So all the fields are there and contain data and work correctly however when in the database expert, Links tab, a number of fields do not display in the one table. I have created probably over 1000 different reports and used many combinations of tables (just not this particular table) and have never seen this problem. This table has about 120 fields (which is larger than most that I use) and only 80 of those fields show in the database expert links tab. I am using Crystal Reports 11.5.8.826, SQL Server2008 R2. I have tried starting over, rebooting, etc.. Thinking it may be some sort of limitation to how many fields are listed in the links tab?
Appears that the missing fields were Text fields. Had to change the data type in SQL to varchar. Not sure why, but Crystal Reports doesn't allow text fields for SQL for file links.
First of all: i don't need a full-text-search engine, i don't need full-text-search in my code. I have a database with ~2000 tables, and i need to find the table and column in which certain information is stored, for developing purposes. Is there any quick way (maybe an SQL Server Management Studio trick that i should know of) to do this? I think phpmyadmin provides such a feature for mysql dbs. At the moment i'm seriously thinking of dumping the database to an .sql file and use a text editor to search for the phrases i'm looking for.
Check the INFORMATION_SCHEMA. You can select on it - there is a table containing all the field names etc. and you can then do search on that one.
I don't see a way how to do it without dynamic SQL - get list of all tables and their columns from sys.tables and sys.columns (don't forget to add proper schema if you're using them), construct query that checks for the values you're trying to find and stores table and column name in temporary table, place all queries into (temp) table and finally cursor/loop over that table executing all queries.
PS. your idea of dumping everything into *.sql files should work as well, depends on the volume of data.
I have a product table where the description column is fulltext indexed.
The problem is, users frequently search a single word, which happens to be in the noiseXXX.txt files.
We'd like to keep the noise word functionality enabled, but is there anyway to turn it off just for this one column?
I think you can do this in 2008 with the SET STOPLIST=OFF, but I can't seem to find similar functionality in SQL Server 2005.
In SQL Server 2005, noise word lists are applied to the entire server. You can disable noise words for the entire server by deleting the appropriate noise word file and then re-building the full text indices. But I do not believe it is possible in SQL Server 2005 to selectively disable noise words for a single table. See for instance here, here and here.
In SQL Server 2008, FTS moves from using noise word files to stop lists. Stop lists are containers that contain collections of stopwords which are not included in full text indices and replace the functionality of noise word files.
In SQL Server 2008 (compatibility level 100 only) you can create multiple stoplists for a given language, and stoplists can be specified for individual tables. That is, one table could use a given stoplist, a second table could use a different stoplist, and a third could use no stoplists at all. Stoplist settings apply to an entire table, so if you have multiple columns indexed in a single table, they all must use the same stoplist.
So to answer your question, I do not believe it is possible in SQL Server 2005 to selectively disable noise words for individual tables while leaving them on for other tables. If this is a deal-breaker for you, this might be a good opportunity to upgrade your server to SQL Server 2008 or 2012.
how to find a table based on some data? i have donzens of tbles in my db and i need a way to find a table by passing the data, how would i achieve that?
using sql server 2008
Take a look at Search all columns in all the tables in a database for a specific value
I am attempting to setup a full text search catalog in SQL Server 2008 is there a way to make this catalog contain data from multiple tables?
In SSMS, you can select as many tables as fields as you like. They just have to be all in the same database.