On 30/10/2007, Richard Huxton <dev@xxxxxxxxxxxx> wrote: > Oleg Bartunov wrote: > > Catalin, > > > > what is your need ? What's wrong with this ? > > > > postgres=# select ts_headline('1 2 3 4 5 3 4 abc abc 2 3 > > xyz','2'::tsquery, 'StartSel=...,StopSel=...') > > ; > > ts_headline > > ------------------------------------------- > > 1 ...2... 3 4 5 3 4 abc abc ...2... 3 xyz > > I think he want's something like: "1 2 3 ... abc 2 3 ..." > > A few characters of context around each match and then ... between. Kind > of like grep -C. That's pretty much correct (with the difference that I'd like context of words rather than lines as in "grep" and StartSel=<b>, StopSel=</b>). Since the text I want a headline for might be pretty long (tens of lines), I'd like to only show the excerpts around the matching words. Similar to the above example: select ts_headline('1 2 3 4 5 3 4 abc x y z 2 3', '2 & abc'::tsquery); should give: '1 <b>2</b> 3 4 ... 3 4 <b>abc</b> x y' Currently, if you limit the maximum words so that 'abc' is too far, it only highlights the first match. Many of the search engines (including google) show the headline this way. I think Lucene can do this as well but I've never used it to be sure. -- Catalin ---------------------------(end of broadcast)--------------------------- TIP 4: Have you searched our list archives? http://archives.postgresql.org/