Hi Klas,

I've been looking some at the guide and you've done a great job.

I think the last section about searching needs a bit more focus on
"design" though. Most of the time "searching by relations" will solve
the problem and a general rule for this kind of searching is to always
try to start the traversal where there are few relationships.

Here is an example query "Give me all customers who's last name is
'Nilsson' who live in Sweden and have ordered this item".

If the application has 500000 customers of which 10000 live in Sweden
and the item has 1000 orders we should start the traversal from the
item traversing item->order->customer and finally filter on country
and the property 'last_name'. If the item constraint wasn't in the
query traversing country->customer would still result in a query time
of ms.

As you point out some attributes are better to index using a external
index utility instead of nodes/relationships. I've been working on
some index utilities lately that can be used to solve the problem
"give me all nodes with property x" but they can't do full text search
very well and that is where Lucene should be used.

Using Lucene as you describe in the guide will work but it will break
transaction safety. What we need to do is to make Lucene an XA-enabled
resource so it can participate in the transaction otherwise
inconsistencies can occur in case of a transaction rollback/jvm crash.

I suggest we remove the Lucene entry from the design guide for now and
put some work in creating a index-utility that will be easier to use.
We could even move the whole "search" part to a Design_Guide_Part2
page since there is a lot to say about just that topic.

-- 
Johan

On 10/12/07, Klas Ehnrot <[EMAIL PROTECTED]> wrote:
> Hi all,
>
> I just wanted to let you know that there is some small additions and
> fixes to the Neo Design Guide which can be found here:
>
> http://wiki.neo4j.org/content/Design_Guide
>
> Basically I have added a section about using Lucene as search engine
> when doing property based searching.
>
> I have also cleaned up the document somewhat, fixed typos etc.
>
> So there are still one or two topics missing but I think the best
> thing now is to get some feedback, especially from the Neo crew so
> that I know if I'm going in the right direction. Despite some possibly
> missing topics, I believe the guide could be linked to now.
>
> Regards
> Klas
> _______________________________________________
> Neo mailing list
> [email protected]
> http://lists.neo4j.org/mailman/listinfo/user
>
_______________________________________________
Neo mailing list
[email protected]
http://lists.neo4j.org/mailman/listinfo/user

Reply via email to