Thread: Replacement for Oracle Text

Replacement for Oracle Text

From
Daniel Westermann
Date:
Hi,

if I'd need to implement/replace Oracle Text (ww.oracle.com/technetwork/testcontent/index-098492.html). What choices do I have in PostgreSQL (9.5+) ?

Regards
Daniel

Re: Replacement for Oracle Text

From
Thomas Kellerer
Date:
Daniel Westermann schrieb am 19.02.2016 um 11:53:
> if I'd need to implement/replace Oracle Text (ww.oracle.com/technetwork/testcontent/index-098492.html).
> What choices do I have in PostgreSQL (9.5+) ?


Postgres also has a full text search (which I find much easier to use than Oracle's):

http://www.postgresql.org/docs/current/static/textsearch.html


Re: Replacement for Oracle Text

From
Daniel Westermann
Date:
>>Daniel Westermann schrieb am 19.02.2016 um 11:53:
>>> if I'd need to implement/replace Oracle Text (ww.oracle.com/technetwork/testcontent/index-098492.html).
>>>> What choices do I have in PostgreSQL (9.5+) ?

>Postgres also has a full text search (which I find much easier to use than Oracle's):
>
>http://www.postgresql.org/docs/current/static/textsearch.html

Yes, i have seen this. Can this be used to index and search binary documents, e.g. pdf ?


Re: Replacement for Oracle Text

From
Thomas Kellerer
Date:
Daniel Westermann schrieb am 19.02.2016 um 12:41:
>>>> if I'd need to implement/replace Oracle Text (ww.oracle.com/technetwork/testcontent/index-098492.html).
>>>>> What choices do I have in PostgreSQL (9.5+) ?
>
>>Postgres also has a full text search (which I find much easier to use than Oracle's):
>>
>>http://www.postgresql.org/docs/current/static/textsearch.html
>
> Yes, i have seen this. Can this be used to index and search binary documents, e.g. pdf ?

Ah, no. That's not possible



Re: Replacement for Oracle Text

From
Andreas Joseph Krogh
Date:
På fredag 19. februar 2016 kl. 12:41:49, skrev Daniel Westermann <daniel.westermann@dbi-services.com>:
>>Daniel Westermann schrieb am 19.02.2016 um 11:53:
>>> if I'd need to implement/replace Oracle Text (ww.oracle.com/technetwork/testcontent/index-098492.html).
>>>> What choices do I have in PostgreSQL (9.5+) ?

>Postgres also has a full text search (which I find much easier to use than Oracle's):
>
>http://www.postgresql.org/docs/current/static/textsearch.html

Yes, i have seen this. Can this be used to index and search binary documents, e.g. pdf ?
 
What we do is extract plain-text from PFD/Word etc. clientside in the application, and then index that in the database.
Works very well.
 
--
Andreas Joseph Krogh
CTO / Partner - Visena AS
Mobile: +47 909 56 963
 
Attachment

Re: Replacement for Oracle Text

From
Simon Riggs
Date:
On 19 February 2016 at 11:46, Thomas Kellerer <spam_eater@gmx.net> wrote:
Daniel Westermann schrieb am 19.02.2016 um 12:41:
>>>> if I'd need to implement/replace Oracle Text (ww.oracle.com/technetwork/testcontent/index-098492.html).
>>>>> What choices do I have in PostgreSQL (9.5+) ?
>
>>Postgres also has a full text search (which I find much easier to use than Oracle's):
>>
>>http://www.postgresql.org/docs/current/static/textsearch.html
>
> Yes, i have seen this. Can this be used to index and search binary documents, e.g. pdf ?

Ah, no. That's not possible

...not possible, Yet.

PostgreSQL grows by adding the features people need and its changing rapidly. 

--
Simon Riggs                http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

Re: Replacement for Oracle Text

From
Bruce Momjian
Date:
On Fri, Feb 19, 2016 at 11:53:26AM +0000, Simon Riggs wrote:
> On 19 February 2016 at 11:46, Thomas Kellerer <spam_eater@gmx.net> wrote:
>
>     Daniel Westermann schrieb am 19.02.2016 um 12:41:
>     >>>> if I'd need to implement/replace Oracle Text (ww.oracle.com/
>     technetwork/testcontent/index-098492.html).
>     >>>>> What choices do I have in PostgreSQL (9.5+) ?
>     >
>     >>Postgres also has a full text search (which I find much easier to use
>     than Oracle's):
>     >>
>     >>http://www.postgresql.org/docs/current/static/textsearch.html
>     >
>     > Yes, i have seen this. Can this be used to index and search binary
>     documents, e.g. pdf ?
>
>     Ah, no. That's not possible
>
>
> ...not possible, Yet.
>
> PostgreSQL grows by adding the features people need and its changing rapidly. 

I wonder if PLPerl could be used to extract the words from a PDF
document and create a tsvector column from it.

--
  Bruce Momjian  <bruce@momjian.us>        http://momjian.us
  EnterpriseDB                             http://enterprisedb.com

+ As you are, so once was I. As I am, so you will be. +
+ Roman grave inscription                             +


Re: Replacement for Oracle Text

From
s d
Date:
On 19 February 2016 at 14:19, Bruce Momjian <bruce@momjian.us> wrote:
On Fri, Feb 19, 2016 at 11:53:26AM +0000, Simon Riggs wrote:
> On 19 February 2016 at 11:46, Thomas Kellerer <spam_eater@gmx.net> wrote:
>
>     Daniel Westermann schrieb am 19.02.2016 um 12:41:
>     >>>> if I'd need to implement/replace Oracle Text (ww.oracle.com/
>     technetwork/testcontent/index-098492.html).
>     >>>>> What choices do I have in PostgreSQL (9.5+) ?
>     >
>     >>Postgres also has a full text search (which I find much easier to use
>     than Oracle's):
>     >>
>     >>http://www.postgresql.org/docs/current/static/textsearch.html
>     >
>     > Yes, i have seen this. Can this be used to index and search binary
>     documents, e.g. pdf ?
>
>     Ah, no. That's not possible
>
>
> ...not possible, Yet.
>
> PostgreSQL grows by adding the features people need and its changing rapidly. 

I wonder if PLPerl could be used to extract the words from a PDF
document and create a tsvector column from it.


 I don't know about PLPerl(I'm pretty sure it could be used for this purpose, though.).  On the other hand I've written code for this in Python which should be easy to adapt for PLPython, if necessary.



Ezt az e-mailt egy Avast védelemmel rendelkező, vírusmentes számítógépről küldték.
www.avast.com

Re: Replacement for Oracle Text

From
Bruce Momjian
Date:
On Fri, Feb 19, 2016 at 02:49:16PM +0100, s d wrote:
> On 19 February 2016 at 14:19, Bruce Momjian <bruce@momjian.us> wrote:
>     >     Ah, no. That's not possible
>     >
>     >
>     > ...not possible, Yet.
>     >
>     > PostgreSQL grows by adding the features people need and its changing
>     rapidly. 
>
>     I wonder if PLPerl could be used to extract the words from a PDF
>     document and create a tsvector column from it.
>
>  I don't know about PLPerl(I'm pretty sure it could be used for this purpose,
> though.).  On the other hand I've written code for this in Python which should
> be easy to adapt for PLPython, if necessary.

Right, so you would write a PL/Perl or PL/Python trigger function that
would populate the tsvector column on every INSERT or UPDATE.

--
  Bruce Momjian  <bruce@momjian.us>        http://momjian.us
  EnterpriseDB                             http://enterprisedb.com

+ As you are, so once was I. As I am, so you will be. +
+ Roman grave inscription                             +


Re: Replacement for Oracle Text

From
Daniel Westermann
Date:
>> 
>>  I don't know about PLPerl(I'm pretty sure it could be used for this purpose,
>> though.).  On the other hand I've written code for this in Python which should
>> be easy to adapt for PLPython, if necessary.

>Right, so you would write a PL/Perl or PL/Python trigger function that
>would populate the tsvector column on every INSERT or UPDATE.

Thanks to all for your input
Daniel

Re: Replacement for Oracle Text

From
Josh berkus
Date:
On 02/19/2016 05:49 AM, s d wrote:
> On 19 February 2016 at 14:19, Bruce Momjian <bruce@momjian.us
> <mailto:bruce@momjian.us>> wrote:
>
>     I wonder if PLPerl could be used to extract the words from a PDF
>     document and create a tsvector column from it.
>
>
>   I don't know about PLPerl(I'm pretty sure it could be used for this
> purpose, though.).  On the other hand I've written code for this in
> Python which should be easy to adapt for PLPython, if necessary.

I'd swear someone already built something to do this.  All you need is a
library which reads PDF and transforms it into text, and then you can
FTS it.  I know there's a module for OpenOffice docs somewhere as well,
but heck if I can remember where.

--
--
Josh Berkus
Red Hat OSAS
(any opinions are my own)


Re: Replacement for Oracle Text

From
Oleg Bartunov
Date:


On Fri, Feb 19, 2016 at 8:28 PM, Josh berkus <josh@agliodbs.com> wrote:
On 02/19/2016 05:49 AM, s d wrote:
On 19 February 2016 at 14:19, Bruce Momjian <bruce@momjian.us
<mailto:bruce@momjian.us>> wrote:

    I wonder if PLPerl could be used to extract the words from a PDF
    document and create a tsvector column from it.


  I don't know about PLPerl(I'm pretty sure it could be used for this
purpose, though.).  On the other hand I've written code for this in
Python which should be easy to adapt for PLPython, if necessary.

I'd swear someone already built something to do this.  All you need is a library which reads PDF and transforms it into text, and then you can FTS it.  I know there's a module for OpenOffice docs somewhere as well, but heck if I can remember where.

I used pdftotext for that.
I think it'd be useful to have extension{s}, which can be used to convert anything to text. I remember someone indexed chemical formulae,  TeX/LaTeX, DOC files.
 

--
--
Josh Berkus
Red Hat OSAS
(any opinions are my own)



--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

Re: Replacement for Oracle Text

From
Stephen Davies
Date:
On 20/02/16 00:24, Bruce Momjian wrote:
> On Fri, Feb 19, 2016 at 02:49:16PM +0100, s d wrote:
>> On 19 February 2016 at 14:19, Bruce Momjian <bruce@momjian.us> wrote:
>>      >     Ah, no. That's not possible
>>      >
>>      >
>>      > ...not possible, Yet.
>>      >
>>      > PostgreSQL grows by adding the features people need and its changing
>>      rapidly.
>>
>>      I wonder if PLPerl could be used to extract the words from a PDF
>>      document and create a tsvector column from it.
>>
>>   I don't know about PLPerl(I'm pretty sure it could be used for this purpose,
>> though.).  On the other hand I've written code for this in Python which should
>> be easy to adapt for PLPython, if necessary.
>
> Right, so you would write a PL/Perl or PL/Python trigger function that
> would populate the tsvector column on every INSERT or UPDATE.
>
FWIW, I just use pdftotext in my CGI.

--
=============================================================================
Stephen Davies Consulting P/L                             Phone: 08-8177 1595
Adelaide, South Australia.                                Mobile:040 304 0583


Re: Replacement for Oracle Text

From
Chris Travers
Date:
A more general way would be to have a function which takes a pdf in and returns the text.  Mark it immutable.

Then you can index the output of converting that text to a tsvector.

You may want to pull everything into a tsvector column for ease of review, but functional indexes also make that less important

On Sat, Feb 20, 2016 at 1:10 AM, Stephen Davies <sdavies@sdc.com.au> wrote:
On 20/02/16 00:24, Bruce Momjian wrote:
On Fri, Feb 19, 2016 at 02:49:16PM +0100, s d wrote:
On 19 February 2016 at 14:19, Bruce Momjian <bruce@momjian.us> wrote:
     >     Ah, no. That's not possible
     >
     >
     > ...not possible, Yet.
     >
     > PostgreSQL grows by adding the features people need and its changing
     rapidly.

     I wonder if PLPerl could be used to extract the words from a PDF
     document and create a tsvector column from it.

  I don't know about PLPerl(I'm pretty sure it could be used for this purpose,
though.).  On the other hand I've written code for this in Python which should
be easy to adapt for PLPython, if necessary.

Right, so you would write a PL/Perl or PL/Python trigger function that
would populate the tsvector column on every INSERT or UPDATE.

FWIW, I just use pdftotext in my CGI.

--
=============================================================================
Stephen Davies Consulting P/L                             Phone: 08-8177 1595
Adelaide, South Australia.                                Mobile:040 304 0583



--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general



--
Best Wishes,
Chris Travers

Efficito:  Hosted Accounting and ERP.  Robust and Flexible.  No vendor lock-in.

Re: Replacement for Oracle Text

From
Stephen Davies
Date:
On 20/02/16 16:21, Chris Travers wrote:
> A more general way would be to have a function which takes a pdf in and
> returns the text.  Mark it immutable.
>
> Then you can index the output of converting that text to a tsvector.
>
> You may want to pull everything into a tsvector column for ease of review, but
> functional indexes also make that less important
>
> On Sat, Feb 20, 2016 at 1:10 AM, Stephen Davies <sdavies@sdc.com.au
> <mailto:sdavies@sdc.com.au>> wrote:
>
>     On 20/02/16 00:24, Bruce Momjian wrote:
>
>         On Fri, Feb 19, 2016 at 02:49:16PM +0100, s d wrote:
>
>             On 19 February 2016 at 14:19, Bruce Momjian <bruce@momjian.us
>             <mailto:bruce@momjian.us>> wrote:
>                   >     Ah, no. That's not possible
>                   >
>                   >
>                   > ...not possible, Yet.
>                   >
>                   > PostgreSQL grows by adding the features people need and
>             its changing
>                   rapidly.
>
>                   I wonder if PLPerl could be used to extract the words from a PDF
>                   document and create a tsvector column from it.
>
>                I don't know about PLPerl(I'm pretty sure it could be used for
>             this purpose,
>             though.).  On the other hand I've written code for this in Python
>             which should
>             be easy to adapt for PLPython, if necessary.
>
>
>         Right, so you would write a PL/Perl or PL/Python trigger function that
>         would populate the tsvector column on every INSERT or UPDATE.
>
>     FWIW, I just use pdftotext in my CGI.
>
>     --
>     =============================================================================
>     Stephen Davies Consulting P/L                             Phone: 08-8177 1595
>     Adelaide, South Australia.                                Mobile:040 304 0583
>
>
>
>     --
>     Sent via pgsql-general mailing list (pgsql-general@postgresql.org
>     <mailto:pgsql-general@postgresql.org>)
>     To make changes to your subscription:
>     http://www.postgresql.org/mailpref/pgsql-general
>
>
>
>
> --
> Best Wishes,
> Chris Travers
>
> Efficito:  Hosted Accounting and ERP.  Robust and Flexible.  No vendor lock-in.
> http://www.efficito.com/learn_more

I reckon my approach is simpler and easier (given web-based data entry).
I get all the meta data plus the PDF BLOB in one HTML request, get out the
text and do the insert and all indexing including the tsvector in one PG request.
It also makes is easier to handle BLOB types other than PDF in the same CGI
script as I just include the extracted text in the PG request.
There are readily callable text extraction utilities similar to pdftotext for
all BLOB types that I see.

With a function, I would have to have separate functions or an extra BLOB-type
parameter to the function and separate extraction logic in the function.


--
=============================================================================
Stephen Davies Consulting P/L                             Phone: 08-8177 1595
Adelaide, South Australia.                                Mobile:040 304 0583