Обсуждение: [GENERAL] Combine multiple text search configuration
Hi,
I want to know if I can combine multiple text search configurations when I tried to use FTS.
Is there any options like this:
to_tsvector(['english', 'french'], document)
Trying to create a new text configuration:
Create text search configuration test (copy=simple)
Alter text search configuration test
add mapping for asciiword with english_stem,french_stem
This query doesn't work. How can I combine multiple text search configurations if I need more than one into my query to search a word?
Hi, On 2017-11-06 09:17, hmidi slim wrote: > Hi, > I want to know if I can combine multiple text search configurations when > I tried to use FTS. > Is there any options like this: > *to_tsvector(['english', 'french'], document)* > * > * > Trying to create a new text configuration: > *Create text search configuration test (copy=simple)* > *Alter text search configuration test* > *add mapping for asciiword with english_stem,french_stem* > * > * > This query doesn't work. How can I combine multiple text search > configurations if I need more than one into my query to search a word? what about using two indexes, one for each language? If your documents can either be English OR French, the English OR the French vector should match an English OR French tsquery. It is not clear to me how combining two stemmers should practically work since each word can only have one stem. If you have multilingual documents or texts with code switching, you could also try combining the two vectors both for the documents and the query: (to_tsvector('english', document) || to_tsvector('french', document)) @@ (to_tsquery('english', query) || to_tsquery('french', query)) -- Sent via pgsql-general mailing list (pgsql-general@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general
Hi, On 2017-11-06 09:17, hmidi slim wrote: > Hi, > I want to know if I can combine multiple text search configurations when > I tried to use FTS. > Is there any options like this: > *to_tsvector(['english', 'french'], document)* > * > * > Trying to create a new text configuration: > *Create text search configuration test (copy=simple)* > *Alter text search configuration test* > *add mapping for asciiword with english_stem,french_stem* > * > * > This query doesn't work. How can I combine multiple text search > configurations if I need more than one into my query to search a word? what about using two indexes, one for each language? If your documents can either be English OR French, the English OR the French vector should match an English OR French tsquery. It is not clear to me how combining two stemmers should practically work since each word can only have one stem. If you have multilingual documents or texts with code switching, you could also try combining the two vectors both for the documents and the query: (to_tsvector('english', document) || to_tsvector('french', document)) @@ (to_tsquery('english', query) || to_tsquery('french', query)) -- Sent via pgsql-general mailing list (pgsql-general@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general
Hi,
Thank for your proposition but when to use this query :
(to_tsvector('english', document) || to_tsvector('french', document)) @@
(to_tsquery('english', query) || to_tsquery('french', query))
(to_tsquery('english', query) || to_tsquery('french', query))
I think that the performance decrease and not a good solution for big amount of data. Is it?
2017-11-06 20:46 GMT+01:00 Johannes Graën <johannes@selfnet.de>:
Hi,
On 2017-11-06 09:17, hmidi slim wrote:
> Hi,
> I want to know if I can combine multiple text search configurations when
> I tried to use FTS.
> Is there any options like this:
> *to_tsvector(['english', 'french'], document)*
> *
> *
> Trying to create a new text configuration:
> *Create text search configuration test (copy=simple)*
> *Alter text search configuration test*
> *add mapping for asciiword with english_stem,french_stem*
> *
> *
> This query doesn't work. How can I combine multiple text search
> configurations if I need more than one into my query to search a word?
what about using two indexes, one for each language? If your documents
can either be English OR French, the English OR the French vector should
match an English OR French tsquery.
It is not clear to me how combining two stemmers should practically work
since each word can only have one stem. If you have multilingual
documents or texts with code switching, you could also try combining the
two vectors both for the documents and the query:
(to_tsvector('english', document) || to_tsvector('french', document)) @@
(to_tsquery('english', query) || to_tsquery('french', query))
On 2017-11-07 08:27, hmidi slim wrote: > Hi, > Thank for your proposition but when to use this query : > (to_tsvector('english', document) || to_tsvector('french', document)) @@ > (to_tsquery('english', query) || to_tsquery('french', query)) > I think that the performance decrease and not a good solution for big > amount of data. Is it? You have more lexems when you combine two languages, but not twice as many as there will be some overlap. That means your index will also be be bigger than a single language index. Anyhow I would expect this variant to perform better than querying two single columns simultaneously. Maybe one of the FTS developers could comment on this? -- Sent via pgsql-general mailing list (pgsql-general@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general