Обсуждение: to_tsvector() chopping off trailing 's' characters
I don't understand this behavior in 12 (worked in 9.6), but:
select 'Thames', to_tsvector('John Thames');
Gives you a vector of: 'john':1 'thame':2
And searching for the full 'Thames' returns no results.
What's happening here?
select 'Thames', to_tsvector('John Thames');
Gives you a vector of: 'john':1 'thame':2
And searching for the full 'Thames' returns no results.
What's happening here?
Sorry for the follow up, meant to add I tried this:
select 'Thames', to_tsvector('simple', 'fat cats ate rats');
And it throws: ERROR: invalid input syntax for type oid: "simple"
Even though doing \dF in psql shows that 'simple' is available in the list of text search configurations.
On Fri, Nov 1, 2019 at 11:28 AM Wells Oliver <wells.oliver@gmail.com> wrote:
I don't understand this behavior in 12 (worked in 9.6), but:
select 'Thames', to_tsvector('John Thames');
Gives you a vector of: 'john':1 'thame':2
And searching for the full 'Thames' returns no results.
What's happening here?
--
Wells Oliver
wells.oliver@gmail.com
wells.oliver@gmail.com
Wells Oliver <wells.oliver@gmail.com> writes: > Sorry for the follow up, meant to add I tried this: > select 'Thames', to_tsvector('simple', 'fat cats ate rats'); > And it throws: ERROR: invalid input syntax for type oid: "simple" That works for me. I suspect you've got some nonstandard versions of to_tsvector() hanging about. There should only be regression=# \df to_tsvector List of functions Schema | Name | Result data type | Argument data types | Type ------------+-------------+------------------+---------------------+------ pg_catalog | to_tsvector | tsvector | json | func pg_catalog | to_tsvector | tsvector | jsonb | func pg_catalog | to_tsvector | tsvector | regconfig, json | func pg_catalog | to_tsvector | tsvector | regconfig, jsonb | func pg_catalog | to_tsvector | tsvector | regconfig, text | func pg_catalog | to_tsvector | tsvector | text | func (6 rows) regards, tom lane
Yeah, odd. I must have borked this somehow, probably remnants of an older installation. I have two PG 12 servers, one where 'simple' works, which has:
Schema | Name | Result data type | Argument data types | Type
------------+-------------+------------------+---------------------+------
pg_catalog | to_tsvector | tsvector | json | func
pg_catalog | to_tsvector | tsvector | jsonb | func
pg_catalog | to_tsvector | tsvector | regconfig, json | func
pg_catalog | to_tsvector | tsvector | regconfig, jsonb | func
pg_catalog | to_tsvector | tsvector | regconfig, text | func
pg_catalog | to_tsvector | tsvector | text | func
------------+-------------+------------------+---------------------+------
pg_catalog | to_tsvector | tsvector | json | func
pg_catalog | to_tsvector | tsvector | jsonb | func
pg_catalog | to_tsvector | tsvector | regconfig, json | func
pg_catalog | to_tsvector | tsvector | regconfig, jsonb | func
pg_catalog | to_tsvector | tsvector | regconfig, text | func
pg_catalog | to_tsvector | tsvector | text | func
And the one where it's borked:
Schema | Name | Result data type | Argument data types | Type
------------+-------------+------------------+---------------------+------
pg_catalog | to_tsvector | tsvector | json | func
pg_catalog | to_tsvector | tsvector | jsonb | func
pg_catalog | to_tsvector | tsvector | regconfig, json | func
pg_catalog | to_tsvector | tsvector | regconfig, jsonb | func
pg_catalog | to_tsvector | tsvector | regconfig, text | func
pg_catalog | to_tsvector | tsvector | text | func
public | to_tsvector | tsvector | oid, text | func
------------+-------------+------------------+---------------------+------
pg_catalog | to_tsvector | tsvector | json | func
pg_catalog | to_tsvector | tsvector | jsonb | func
pg_catalog | to_tsvector | tsvector | regconfig, json | func
pg_catalog | to_tsvector | tsvector | regconfig, jsonb | func
pg_catalog | to_tsvector | tsvector | regconfig, text | func
pg_catalog | to_tsvector | tsvector | text | func
public | to_tsvector | tsvector | oid, text | func
Seems that public function is the weirdo remnant breaking things. I ... think... I can just drop public.to_tsvector, right?
On Fri, Nov 1, 2019 at 11:54 AM Tom Lane <tgl@sss.pgh.pa.us> wrote:
Wells Oliver <wells.oliver@gmail.com> writes:
> Sorry for the follow up, meant to add I tried this:
> select 'Thames', to_tsvector('simple', 'fat cats ate rats');
> And it throws: ERROR: invalid input syntax for type oid: "simple"
That works for me. I suspect you've got some nonstandard versions
of to_tsvector() hanging about. There should only be
regression=# \df to_tsvector
List of functions
Schema | Name | Result data type | Argument data types | Type
------------+-------------+------------------+---------------------+------
pg_catalog | to_tsvector | tsvector | json | func
pg_catalog | to_tsvector | tsvector | jsonb | func
pg_catalog | to_tsvector | tsvector | regconfig, json | func
pg_catalog | to_tsvector | tsvector | regconfig, jsonb | func
pg_catalog | to_tsvector | tsvector | regconfig, text | func
pg_catalog | to_tsvector | tsvector | text | func
(6 rows)
regards, tom lane
--
Wells Oliver
wells.oliver@gmail.com
wells.oliver@gmail.com