Re: Tsearch2 lexeme position
От | Teodor Sigaev |
---|---|
Тема | Re: Tsearch2 lexeme position |
Дата | |
Msg-id | 3F3BA418.5010207@sigaev.ru обсуждение исходный текст |
Ответ на | Re: Tsearch2 lexeme position (Alexander Rüegg <arueegg@uni-bielefeld.de>) |
Список | pgsql-general |
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
В списке pgsql-general по дате отправления: