Full-Text search on a table column issue - tsql

I have a Table that I want to search its title(nvarchar(max)) column.
But I am getting an error when I create an index over the title column so I can enable Full Text search on it.
I am going to use the Contains keyword to do the job.
Any ideas?
Thanks,

You say in the comments
When I create the index over the
column Title, I get an error stating
that you cannot create an index over a
column of this type
This sounds like you are trying to create a regular index on it not a full text index. Right click the table in SSMS and choose "Full Text Index" to set up full text indexing.
If this option is greyed out you might need to run exec sp_fulltext_database 'enable' first.

Related

Make column editiable in pgadmin4

How to unlock the fields in pgadmin4 so I can insert/update column directly threw pgadmin4 Data Output result.
Please refer below image displaying lock icon in each field
I want result like below which has icon of a pencil which shows that the field is editable.
I have given all the permission on the table.
Give your table a primary key column. Otherwise, pgAdmin4 has no way to communicate to the database which row you are trying to edit.
We have to make sure we have selected the primary key at tables properties level (right click on your table).
You can do that inside table properties column section:
It happens if I do a join with me, try seperately running the queries without joins for the columns that you want to edit.

Postgres autocomplete and full text search

I need to create suggestion autocomplete for all the columns of a table in a single searchbox using postgres database.
I have a search autocomplete in web page and need to autosuggest the options. All columns are varchar.
For searching I am using the approach like
select * from userschema.user_details where to_tsvector(user_details::text) ## to_tsquery('text:*')
But I am facing an issue getting the options for autocomplete.
Is there a way of searching the tsvector and getting all the options that match a criteria.
Something like getting text* options from all the words of tsvector so that I can use them for autosuggest.
I am thinking of storing the contents of tsvector into a column.
Is there a way of fetching autosuggest words from same?

Can I create an index FROM another index?

I am doing various regepx_filters in an index to modify the stored index text, this from data that is originally in tagged html format (multiple zones). After I do so is is possible to now make a second index based on the first modified index that uses only one of the zones in the original index?
index_zones = Title, Author, Description
Can I, after indexing this with a custom configuration, then duplicate this index in some way that says
Create IndexB based on IndexA using ZONE:(Title) only
Say for instance I did the following regexp:
regexp_filter=(<Title>.*?ipad.*?)(<\/Title>)<Description>.*?Used.*?<\/Description>=>\1 Used\2 in order to index used into the Title Zone.
Now I want to reindex or make a new index with just the newly indexed
<Title>Bla bla ipad bla bla Used</Title>
is this possible? If not can I then update my Mysql table with the newly indexed text?
I don't think it's possible to create an index based on an existing sphinx index. I also don't think its possible to retrieve the regexp_filtered result - im pretty sure its only available to query against.
Why dont you do your regex's before sphinx indexing? For example, create a new db column ipad_used_regex and populate this with whatever scripting language you choose. Or using mariaDb with the PCRE Regex Enhancements you could build the regex match into the SQL, something like this:
SELECT Title, REGEXP_REPLACE(Title, "(<Title>.*?ipad.*?)(<\/Title>)<Description>.*?Used.*?<\/Description>", '\\1 Used\\2') as ipad_used_regex
FROM `your_table`
You could then use this SQL in your sphinx index source?

Must be possible to filter table names in a single database?

As far as I can tell, the search filter in the navigator will only search available database names, not table names.
If you click on a table name and start typing, it appears that a simple search can be performed beginning with the first letter of the tables.
I'm looking for way to be able to search all table names in a selected database. Sometimes there can be a lot of tables to sort through. It seems like a feature that would likely be there and I can't find it.
Found out the answer...
If you type for example *.test_table or the schema name instead of the asterisk it will filter them. The key is that the schema/database must be specified in the search query. The asterisk notation works with the table names as well. For example *.*test* will filter any table in any schema with test anywhere in the table name.
You can use the command
SHOW TABLES like '%%';
To have it always in your tools, you can add it as a snippet to SQL aditions panel on the right.
Then you can always either bring it in your editor and type your search key between %%, or just execute it as it is (It will fetch all the tables of the database) and then just filter using the "filter rows" input of the result set.

Autonumbering in forms in Access

I have a form in access that saves the data in a database and I want one of the fields to be automatically calculated as the next value in line as the ID so that the user doesnt write the ID. does anyone have any ideas?
Create your table using an Autonumber data type.
If you manually create your tables then this statement
CREATE TABLE TableThatIncrements
(
Id AUTOINCREMENT(1001,1)
)
Alternately you can edit your existing table Id column using:
ALTER TABLE TableThatIncrements
ALTER COLUMN Id AUTOINCREMENT(1001,1)
If you do not, then you can change per the article I mentioned via the GUI interface. See steps in this article: https://superuser.com/questions/288087/how-do-i-set-the-first-value-of-autonumber-in-access
You can run a query in Access by doing the following:
Go to the "Create" tab and click "Query Design"
Just close the window that appears which asks you to select tables, we don't need that.
Go to the "Design" tab and click the button with the arrow until you get a textual input screen. (By default, it says SELECT;).
Delete the default text and paste the above query.
Click "Run".