Thread: Google SoC idea: FTS support in GUI tools

Google SoC idea: FTS support in GUI tools

From
"Ivan Zolotukhin"
Date:
Hello,

There are many users (especially novice) asking about better and
easier configuration of tsearch2, which is quite complicated
currently. Even new FTS features in 8.3 (e.g. much clearer
configuration with SQL commands) won't help much for users that want
simple "several clicks" setup of a small system with full text
indexing. Adding support of nice user-friendly FTS configuration in
popular PostgreSQL GUI administration tools would help a lot to spread
PostgreSQL among wide group of potential users. Also certain GUI
features can be helpful even for experienced users.

That is why I would like to propose idea to implement FTS
configuration functionality in GUI tools in a frame of Google SoC
2007.

Basic plan of the work is to code all interfaces and debug ideas
firstly in phpPgAdmin and then re-implement ready solutions in
pgadmin3. I consider below features as most useful and would like to
hear any comments what to change/add to this list.

- interfaces to add/modify FTS configurations, dictionaries and tokens
with their processing rules (with drop down menus to exclude typos and
other useful features)
- user-frienly visualisation of ts_debug() to simplify understanding
of what processing happened with the input text and swtiches of
configuration against which we tested the input
- FTS operators in usual phpPgAdmin table select interface
- online query rewriting (special table to store rewrite rules and
test if given rule works as expected); this is especially helpful
because does not require reindexing
- possible interface to index statistics and heuristics to understand
if its healthy (to be discussed with Oleg)
- user-friendly index creation (tsvector column + FTS index + trigger
on parent text field)
- ability to check if FTS configured properly. This includes:
  * some knowledge contained in the interface to perform tests
  * possibly several FTS core features like check if dictionary files
exist and are accessible (will be proposed before 8.3 feature freeze,
to be discussed with Oleg)
  * ability to reset configuration and re-parse all dictionary files
- all user actions should generate on demand valid SQL suitable for
copy-paste into other clients
- possibly implement simple PHP interface for text searches with
themes support to simplify building of FTS-enabled web-interfaces
("just copypaste this PHP code and one line of HTML form code to your
site and switch on FTS on given table in phpPgAdmin")

Open questions:
- what to change/add to this list?
- should we support old tsearch2 configuration for backward
compatibilty with versions prior to 8.3? This seriously increases
amount of work to be done.
- should we analyze FTS configuration experience and interfaces
existing in $$$ databases?

One of the advantage of this work would be independance from
PostgreSQL 8.3 release that does not fit into SoC schedule. It means
that one does not need to wait till next PostgreSQL release since SoC
results can be released just after it finishes with nearest phpPgAdmin
release.

Any feedback is welcome.


Best regards,
Ivan Zolotukhin

Re: Google SoC idea: FTS support in GUI tools

From
Dave Page
Date:
[Forgot to CC the list]

Ivan Zolotukhin wrote:
> Hello,
>
> There are many users (especially novice) asking about better and
> easier configuration of tsearch2, which is quite complicated
> currently. Even new FTS features in 8.3 (e.g. much clearer
> configuration with SQL commands) won't help much for users that want
> simple "several clicks" setup of a small system with full text
> indexing. Adding support of nice user-friendly FTS configuration in
> popular PostgreSQL GUI administration tools would help a lot to spread
> PostgreSQL among wide group of potential users. Also certain GUI
> features can be helpful even for experienced users.
>
> That is why I would like to propose idea to implement FTS
> configuration functionality in GUI tools in a frame of Google SoC
> 2007.
>
> Basic plan of the work is to code all interfaces and debug ideas
> firstly in phpPgAdmin and then re-implement ready solutions in
> pgadmin3. I consider below features as most useful and would like to
> hear any comments what to change/add to this list.

Hi,

This would certainly be a useful addition to pgAdmin. Some quick
comments though:

- This is the pgAdmin hackers list, not phpPgAdmin which seems to be
your primary focus :-(. You might want to post to their list as well.

- You propose to implement support in both phpPgAdmin and then pgAdmin.
They are *very* different architectures, and in particular pgAdmin can
have quite a steep learning curve. Would you be able to successfully
work on both projects in the required timeframe?

- phpPgAdmin is a web app whereas pgAdmin is a native desktop app. This
results in applications that are very different to use for the user -
can you successfully prototype desktop functionality in a web app?


> Open questions:
> - what to change/add to this list?

It seems quite an ambitious list. I would expect it to take me a couple
of weeks to implement basic configuration support in pgAdmin, nevermind
the diagnostics functionality you describe. Even working on just one of
the two interfaces this seems like an ambitious project.

> - should we support old tsearch2 configuration for backward
> compatibilty with versions prior to 8.3? This seriously increases
> amount of work to be done.

No, I don't think so (and wouldn't want it in pgadmin for sure).

> - should we analyze FTS configuration experience and interfaces
> existing in $$$ databases?

It's always worth researching the approaches used in other products
where possible. Of course, you must be careful not to use patented
algorithms but that is rarely an issue in UI design.

Regards, Dave.


Re: Google SoC idea: FTS support in GUI tools

From
"Florian G. Pflug"
Date:
Dave Page wrote:
> It's always worth researching the approaches used in other products
> where possible. Of course, you must be careful not to use patented
> algorithms but that is rarely an issue in UI design.

You might want to check if amazon hasn't acquired a patent on
One-Click-FTS though ;-)

greetings, Florian Pflug


Re: Google SoC idea: FTS support in GUI tools

From
"Ivan Zolotukhin"
Date:
Hi,

> - This is the pgAdmin hackers list, not phpPgAdmin which seems to be
> your primary focus :-(. You might want to post to their list as well.

I posted a copy of my initial message to their sourceforge trackers.

> - You propose to implement support in both phpPgAdmin and then pgAdmin.
> They are *very* different architectures, and in particular pgAdmin can
> have quite a steep learning curve. Would you be able to successfully
> work on both projects in the required timeframe?

I'm essentially a web programmer with a very nice experience (several
big internet applications in Russia), but my C skills are modest in
this sense. It means that there's a chance that I finish phpPgAdmin
functionality before the end of SoC time and will have some time to
study pgAdmin and implement at least something. Anyway I will try to
continue this work after SoC also. I would say that phpPgAdmin
functionality is a must and pgAdmin functionality is an option I will
be glad to develop after SoC. Also, wxWidgets is not so difficult to
study, AFAIK.

> - phpPgAdmin is a web app whereas pgAdmin is a native desktop app. This
> results in applications that are very different to use for the user -
> can you successfully prototype desktop functionality in a web app?

Did not try yet, but there are many similar things from
user/interfaces point of view. So with no doubt interfaces, ideas and
approaches implemented in phpPgAdmin will help in pgadmin3
developement.

> It seems quite an ambitious list. I would expect it to take me a couple
> of weeks to implement basic configuration support in pgAdmin, nevermind
> the diagnostics functionality you describe. Even working on just one of
> the two interfaces this seems like an ambitious project.

Thanks but I really think that there will be some time left from phpPgAdmin.

> > - should we support old tsearch2 configuration for backward
> > compatibilty with versions prior to 8.3? This seriously increases
> > amount of work to be done.
>
> No, I don't think so (and wouldn't want it in pgadmin for sure).

Agree, thanks for your opinion.

Regards,
Ivan Zolotukhin

Re: Google SoC idea: FTS support in GUI tools

From
Dave Page
Date:
Florian G. Pflug wrote:
> Dave Page wrote:
>> It's always worth researching the approaches used in other products
>> where possible. Of course, you must be careful not to use patented
>> algorithms but that is rarely an issue in UI design.
>
> You might want to check if amazon hasn't acquired a patent on
> One-Click-FTS though ;-)

I did say rarely, Amazon being the only example I could actually think of!

/D