Re: [Neo4j] Index Framework - Query Question

2011-05-15 Thread Peter Neubauer
Rick,
hacking in Sweden on indexing would be a very cool option. Need to
coordinate that but let me know how we can do it best! Meanwhile, we are
deciding on an issue tracking system better than Trac. Until then, I will
add this to our Google Spreadsheet so we don't loose your suggestions here!

Cheers,

/peter neubauer

GTalk:  neubauer.peter
Skype   peter.neubauer
Phone   +46 704 106975
LinkedIn   http://www.linkedin.com/in/neubauer
Twitter  http://twitter.com/peterneubauer

http://www.neo4j.org   - Your high performance graph database.
http://startupbootcamp.org/- Ă–resund - Innovation happens HERE.
http://www.thoughtmade.com - Scandinavia's coolest Bring-a-Thing party.


On Thu, May 12, 2011 at 5:20 PM, Rick Bullotta
wrote:

> Hi, Mattias.
>
> I'll definitely give it a try.
>
> Ultimately, I'd like to achieve the following scenario (and maybe you can
> give us some guidance on how to implement it):
>
> As a use case: we want to index the node associated with a "collaboration
> entry" (that has a timestamp, tag(s), location, textual content, and
> potentially some numeric values as properties) on a combination of what is
> currently many different types of indexes in Neo - fulltext, timeline,
> spatial, and "plain" (key/value field(s)).We'd like to search/query on
> any combination of those elements.
>
> We've been considering a few options:
>
> - use relationships (that wouldn't meet our performance/concurrency
> requirements)
> - use the current index framework with separate indexes, query multiple
> times, and do the set comparison/intersection in our code
> - bypass Neo's indexing model altogether and go directly to Lucene, though
> we'd lose the transaction capabilities
> - hack the Neo code for the various Lucene index implementations and create
> our own "composite index" index type that supports fulltext fields,
> geospatial fields, simple data types (string, number, boolean), timeline,
> and multi-valued fields
>
> I like option #4, but we'd definitely need some help and input to build it
> in a way that wasn't too fragile from version to version of Neo.  I think it
> is a capability that would be broadly useful for a lot of Neo users, though,
> and would fit nicely with some of the work Anders is doing in a Neo query
> language/syntax.
>
> I do think the ability to have more control at the "field" level could lead
> to some cool capabilities and significant optimizations both in storage and
> retrieval.  I also think you've managed to work around the transactioning
> issues, so it would be foolish to re-invent the wheel there.  The basic idea
> would be a composite index that perhaps had a new "add" method which
> accepted a Field definition instead of just a simple string field name.  The
> Lucene index implementation could leverage this to exploit a lot of the
> power of Lucene to meet the overall goal of a very flexible indexing/query
> subsystem for Neo4J.  Additionally, the Field definition for full-text
> fields could have an analyzer associated with it, rather than an Analyzer at
> the index level only.
>
> If you would be up for it, maybe we come over to Sweden for a couple days
> and hack #4 together, or we could do it "virtually"?
>
> Thoughts?
>
> Rick
>
> -Original Message-
> From: user-boun...@lists.neo4j.org [mailto:user-boun...@lists.neo4j.org]
> On Behalf Of Mattias Persson
> Sent: Thursday, May 12, 2011 3:55 AM
> To: Neo4j user discussions
> Subject: Re: [Neo4j] Index Framework - Query Question
>
> Could you perhaps create an index with a custom Analyzer which treats
> titles
> as fulltext and others as non-analyzed?
>
> 2011/5/11 Rick Bullotta 
>
> > Is there currently any way to have a composite index consisting of
> fulltext
> > and non-analyzed (simple fields), and to query them in a single query
> > statement?  e.g. :  title:Reloaded AND year:1999
> >
> > In this case, I'd be using a Lucene Analyzer on the title, but indexing
> the
> > primitive types without using the analyzer/norms/etc...I know how to do
> it
> > with Lucene directly, but not clear if it can be done w/Neo4J.
> >
> > Thanks!
> >
> > Rick
> >
> > ___
> > Neo4j mailing list
> > User@lists.neo4j.org
> > https://lists.neo4j.org/mailman/listinfo/user
> >
>
>
>
> --
> Mattias Persson, [matt...@neotechnology.com]
> Hacker, Neo Technology
> www.neotechnology.com
> ___
> Neo4j mailing list
> User@lists.neo4j.org
> https://lists.neo4j.org/mailman/listinfo/user
> ___
> Neo4j mailing list
> User@lists.neo4j.org
> https://lists.neo4j.org/mailman/listinfo/user
>
___
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user


Re: [Neo4j] Index Framework - Query Question

2011-05-12 Thread Rick Bullotta
Hi, Mattias.

I'll definitely give it a try.

Ultimately, I'd like to achieve the following scenario (and maybe you can give 
us some guidance on how to implement it):

As a use case: we want to index the node associated with a "collaboration 
entry" (that has a timestamp, tag(s), location, textual content, and 
potentially some numeric values as properties) on a combination of what is 
currently many different types of indexes in Neo - fulltext, timeline, spatial, 
and "plain" (key/value field(s)).We'd like to search/query on any 
combination of those elements.  

We've been considering a few options:

- use relationships (that wouldn't meet our performance/concurrency 
requirements)
- use the current index framework with separate indexes, query multiple times, 
and do the set comparison/intersection in our code
- bypass Neo's indexing model altogether and go directly to Lucene, though we'd 
lose the transaction capabilities
- hack the Neo code for the various Lucene index implementations and create our 
own "composite index" index type that supports fulltext fields, geospatial 
fields, simple data types (string, number, boolean), timeline, and multi-valued 
fields

I like option #4, but we'd definitely need some help and input to build it in a 
way that wasn't too fragile from version to version of Neo.  I think it is a 
capability that would be broadly useful for a lot of Neo users, though, and 
would fit nicely with some of the work Anders is doing in a Neo query 
language/syntax.

I do think the ability to have more control at the "field" level could lead to 
some cool capabilities and significant optimizations both in storage and 
retrieval.  I also think you've managed to work around the transactioning 
issues, so it would be foolish to re-invent the wheel there.  The basic idea 
would be a composite index that perhaps had a new "add" method which accepted a 
Field definition instead of just a simple string field name.  The Lucene index 
implementation could leverage this to exploit a lot of the power of Lucene to 
meet the overall goal of a very flexible indexing/query subsystem for Neo4J.  
Additionally, the Field definition for full-text fields could have an analyzer 
associated with it, rather than an Analyzer at the index level only.

If you would be up for it, maybe we come over to Sweden for a couple days and 
hack #4 together, or we could do it "virtually"? 

Thoughts?

Rick

-Original Message-
From: user-boun...@lists.neo4j.org [mailto:user-boun...@lists.neo4j.org] On 
Behalf Of Mattias Persson
Sent: Thursday, May 12, 2011 3:55 AM
To: Neo4j user discussions
Subject: Re: [Neo4j] Index Framework - Query Question

Could you perhaps create an index with a custom Analyzer which treats titles
as fulltext and others as non-analyzed?

2011/5/11 Rick Bullotta 

> Is there currently any way to have a composite index consisting of fulltext
> and non-analyzed (simple fields), and to query them in a single query
> statement?  e.g. :  title:Reloaded AND year:1999
>
> In this case, I'd be using a Lucene Analyzer on the title, but indexing the
> primitive types without using the analyzer/norms/etc...I know how to do it
> with Lucene directly, but not clear if it can be done w/Neo4J.
>
> Thanks!
>
> Rick
>
> ___
> Neo4j mailing list
> User@lists.neo4j.org
> https://lists.neo4j.org/mailman/listinfo/user
>



-- 
Mattias Persson, [matt...@neotechnology.com]
Hacker, Neo Technology
www.neotechnology.com
___
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user
___
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user


Re: [Neo4j] Index Framework - Query Question

2011-05-12 Thread Mattias Persson
Could you perhaps create an index with a custom Analyzer which treats titles
as fulltext and others as non-analyzed?

2011/5/11 Rick Bullotta 

> Is there currently any way to have a composite index consisting of fulltext
> and non-analyzed (simple fields), and to query them in a single query
> statement?  e.g. :  title:Reloaded AND year:1999
>
> In this case, I'd be using a Lucene Analyzer on the title, but indexing the
> primitive types without using the analyzer/norms/etc...I know how to do it
> with Lucene directly, but not clear if it can be done w/Neo4J.
>
> Thanks!
>
> Rick
>
> ___
> Neo4j mailing list
> User@lists.neo4j.org
> https://lists.neo4j.org/mailman/listinfo/user
>



-- 
Mattias Persson, [matt...@neotechnology.com]
Hacker, Neo Technology
www.neotechnology.com
___
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user


[Neo4j] Index Framework - Query Question

2011-05-11 Thread Rick Bullotta
Is there currently any way to have a composite index consisting of fulltext and 
non-analyzed (simple fields), and to query them in a single query statement?  
e.g. :  title:Reloaded AND year:1999

In this case, I'd be using a Lucene Analyzer on the title, but indexing the 
primitive types without using the analyzer/norms/etc...I know how to do it with 
Lucene directly, but not clear if it can be done w/Neo4J.

Thanks!

Rick

___
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user