Re: Could use some advice on search architecture

From: Susan Cassidy <susan(dot)cassidy(at)decisionsciencescorp(dot)com>
To: Ron Pasch <postgresql(at)ronpasch(dot)nl>
Cc: "pgsql-general(at)postgresql(dot)org" <pgsql-general(at)postgresql(dot)org>
Subject: Re: Could use some advice on search architecture
Date: 2014-04-18 15:10:13
Message-ID: CAE3Q8o=WRnc8h3J_D1UBLA1yfKHf4vusTSD5WCC8jmGaearRHA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

First, I would not restrict color to 30 colors, if anything like furniture
or clothing, etc. is involved. Colors are very important to consumers, and
exact colors are important. I would re-think my color selections.

Make sure you have indexes on all the appropriate columns, of course.

Susan

On Fri, Apr 18, 2014 at 6:59 AM, Ron Pasch <postgresql(at)ronpasch(dot)nl> wrote:

> Hello,
>
> I'm contemplating what architecture I should use to make searching as fast
> as possible given the information available and the search requirements.
> Let me give some background first;
>
> - The database contains products of can potentially have a lot of them (up
> to about 3 to 5 million)
> - Each product has about 30 different properties defined about them.
> Things like what color they are etc. All these properties are enumerated
> choices, so for instance for color there is a list of available static
> never changing options of which one can be chosen for that product. This is
> the same for all those 30 properties. Currently they are stored as
> enumerated types (CREATE TYPE propertyvalue AS ENUM ('option1', 'option2',
> etc..)
> - It should be possible to search for products and provide properties that
> the product SHOULD have, not must have. For instance, for color, the search
> could specify that it should return products that are either red, blue or
> green.
> - The products that match with the most properties should be in the top of
> the search results
> - If different products match with the same amount of properties, the
> ordering should then be on the product that is most popular. There is
> information in the database (and if need be also in the same table) about
> how many times a product is sold.
> - The results will be paginated per 15 products
>
> The requirement is that these searches should be as fast as possible, with
> a maximum of about 200 ms time taken for a search query.
>
> What would be the best approach to this if I were to do this in the
> database only? Should/can this be done with postgresql only or should I
> look into other types of technology? (Lucene? Sphinx? others?)
>
> Any advice on this would be greatly appreciated.
>
> Thx in advance!
>
> Ron
>
>
>
> --
> Sent via pgsql-general mailing list (pgsql-general(at)postgresql(dot)org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-general
>

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Robin 2014-04-18 15:19:38 Re: Arduino SQL Connector
Previous Message Adrian Klaver 2014-04-18 15:01:48 Re: Arduino SQL Connector