Tsearch2 lexeme position

Started by Alexander Rüeggalmost 23 years ago5 messagesgeneral
Jump to latest
#1Alexander Rüegg
arueegg@uni-bielefeld.de

Hi,

Is it possible to get all the positions of a lexeme in a result-set of a
query? For example, we have the table

TEXT TEXT_IDX
'TSearch2 is very cool' ...

'It would be much cooler with lexeme positions'

Our query is
SELECT text, position FROM thetable WHERE text_idx @@ 'cool'::tsquery;
^^^^^^^^
The result should be something like:
'TSearch2 is very cool', 4
'It would be much cooler with lexeme positions', 5

If not, is there a function that returns the positions of a lexeme in a
single entry?

thanks
Alex

--
Dipl.-Inform. Alexander Rueegg
Bioinformatics Department Faculty of Technology
Bielefeld University
Phone: +49 (0)521-106-3541
Fax: +49 (0)521-106-6488
Room: C02-206
Email: arueegg@techfak.uni-bielefeld.de

#2Teodor Sigaev
teodor@sigaev.ru
In reply to: Alexander Rüegg (#1)
Re: Tsearch2 lexeme position

Alexander R�egg wrote:

Hi,

Is it possible to get all the positions of a lexeme in a result-set of a
query? For example, we have the table

TEXT TEXT_IDX
'TSearch2 is very cool' ...

'It would be much cooler with lexeme positions'

Our query is
SELECT text, position FROM thetable WHERE text_idx @@ 'cool'::tsquery;
^^^^^^^^
The result should be something like:
'TSearch2 is very cool', 4
'It would be much cooler with lexeme positions', 5

If not, is there a function that returns the positions of a lexeme in a
single entry?

You can write such function, but why do you need it? May be there is more simple
way to resolve your problem?

BTW, lexeme can have more that one position...

--
Teodor Sigaev E-mail: teodor@sigaev.ru

#3Alexander Rüegg
arueegg@uni-bielefeld.de
In reply to: Teodor Sigaev (#2)
Re: Tsearch2 lexeme position

Thank you for your response.
We want to know the distance or sequence of words in a set of
text-entries. So first we try to retrieve the text-entries in which the
words appear using tsearch indexing. After that we want to calculate the
positions of the words in each entry, e.g. parsing the index column of
the retrieved text-entries.
Maybe there exists a function or an easier/cheaper way to get this
information (and which considers that the words maybe occur more than once).

thanks,
Alex

Teodor Sigaev wrote:

Alexander R�egg wrote:

Hi,

Is it possible to get all the positions of a lexeme in a result-set of a
query? For example, we have the table

TEXT TEXT_IDX
'TSearch2 is very cool' ...

'It would be much cooler with lexeme positions'

Our query is
SELECT text, position FROM thetable WHERE text_idx @@ 'cool'::tsquery;
^^^^^^^^
The result should be something like:
'TSearch2 is very cool', 4
'It would be much cooler with lexeme positions', 5

If not, is there a function that returns the positions of a lexeme in a
single entry?

You can write such function, but why do you need it? May be there is
more simple way to resolve your problem?

BTW, lexeme can have more that one position...

--

Alexander Rueegg
Email: arueegg@uni-bielefeld.de

#4Teodor Sigaev
teodor@sigaev.ru
In reply to: Alexander Rüegg (#3)
Re: Tsearch2 lexeme position

Alexander R�egg wrote:

Thank you for your response.
We want to know the distance or sequence of words in a set of
text-entries. So first we try to retrieve the text-entries in which the
words appear using tsearch indexing. After that we want to calculate the
positions of the words in each entry, e.g. parsing the index column of
the retrieved text-entries.
Maybe there exists a function or an easier/cheaper way to get this
information (and which considers that the words maybe occur more than
once).

No, it is not exists. The easiest way is to extract this info from tsvector value.

thanks,
Alex

Teodor Sigaev wrote:

Alexander R�egg wrote:

Hi,

Is it possible to get all the positions of a lexeme in a result-set of a
query? For example, we have the table

TEXT TEXT_IDX
'TSearch2 is very cool' ...

'It would be much cooler with lexeme positions'

Our query is
SELECT text, position FROM thetable WHERE text_idx @@ 'cool'::tsquery;
^^^^^^^^
The result should be something like:
'TSearch2 is very cool', 4
'It would be much cooler with lexeme positions', 5

If not, is there a function that returns the positions of a lexeme in a
single entry?

You can write such function, but why do you need it? May be there is
more simple way to resolve your problem?

BTW, lexeme can have more that one position...

--
Teodor Sigaev E-mail: teodor@sigaev.ru

#5Oleg Bartunov
oleg@sai.msu.su
In reply to: Teodor Sigaev (#4)
Re: Tsearch2 lexeme position

Alexander,

we'd be glad to add such function to tsearch2 in case it'd be useful
for many peoples, not just you.

Oleg
On Thu, 14 Aug 2003, Teodor Sigaev wrote:

Alexander RО©╫egg wrote:

Thank you for your response.
We want to know the distance or sequence of words in a set of
text-entries. So first we try to retrieve the text-entries in which the
words appear using tsearch indexing. After that we want to calculate the
positions of the words in each entry, e.g. parsing the index column of
the retrieved text-entries.
Maybe there exists a function or an easier/cheaper way to get this
information (and which considers that the words maybe occur more than
once).

No, it is not exists. The easiest way is to extract this info from tsvector value.

thanks,
Alex

Teodor Sigaev wrote:

Alexander RО©╫egg wrote:

Hi,

Is it possible to get all the positions of a lexeme in a result-set of a
query? For example, we have the table

TEXT TEXT_IDX
'TSearch2 is very cool' ...

'It would be much cooler with lexeme positions'

Our query is
SELECT text, position FROM thetable WHERE text_idx @@ 'cool'::tsquery;
^^^^^^^^
The result should be something like:
'TSearch2 is very cool', 4
'It would be much cooler with lexeme positions', 5

If not, is there a function that returns the positions of a lexeme in a
single entry?

You can write such function, but why do you need it? May be there is
more simple way to resolve your problem?

BTW, lexeme can have more that one position...

Regards,
Oleg
_____________________________________________________________
Oleg Bartunov, sci.researcher, hostmaster of AstroNet,
Sternberg Astronomical Institute, Moscow University (Russia)
Internet: oleg@sai.msu.su, http://www.sai.msu.su/~megera/
phone: +007(095)939-16-83, +007(095)939-23-83