[Neo4j] neo4j-scala improvements

2011-09-08 Thread Christopher Schmidt
Neo4j Scala (https://github.com/FaKod/neo4j-scala) has got some improvements
- Scala (non nested) Case Class de- serialization to or from a Neo4j Node
(see example)
- index convenience methods (see example)
- create and get Relation Objects, like val relation = start --> "foo" -->
end <;

It's still alpha, but worth to look at :-)

case class Test(s: String, i: Int, ji: java.lang.Integer, d: Double, l:
Long, b: Boolean)

object DeSerializingSpec extends Specification with Neo4jWrapper with
EmbeddedGraphDatabaseServiceProvider {

  def neo4jStoreDir = "/tmp/temp-neo-test"

  "Node" should {
"be serializable" in {
  var o = Test("This is a String", 1, 2, 3.3, 10, true)
  var node: Node = null
  withTx {
implicit neo =>
  node = createNode(o)
  }

  var oo = deSerialize[Test](node)
  oo must beEqual(o)
}
  }
}


object IndexTestSpec extends Specification with Neo4jWrapper with
EmbeddedGraphDatabaseServiceProvider with Neo4jIndexProvider {

  def neo4jStoreDir = "/tmp/temp-neo-index-test"

  override def NodeIndexConfig = ("MyTestIndex", Map("provider" -> "lucene",
"type" -> "fulltext")) :: Nil


  "Neo4jIndexProvider" should {
"use the fulltext search index" in {

  val nodeIndex = getNodeIndex("MyTestIndex").get

  withSpatialTx {
implicit db =>

val theMatrix = createNode
val theMatrixReloaded = createNode

// add to index
nodeIndex += (theMatrix, "title", "The Matrix")
nodeIndex += (theMatrixReloaded, "title", "The Matrix Reloaded")

val found = nodeIndex.query("title", "reloAdEd")
found.size must beGreaterThanOrEqualTo(1)

// remove from index
nodeIndex -= theMatrix
nodeIndex -= theMatrixReloaded
  }
}
  }
}

-- 
Christopher
twitter: @fakod
blog: http://blog.fakod.eu
___
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user


Re: [Neo4j] getProperty() on deleted Node in TransactionEventHandler.beforeCommit()

2011-09-08 Thread tcolar
To reply to myself:

I found out that i was able to get the properties of the to be deleted node
in data.removedNodeProperties()
with the value being in previouslyCommitedValue()

 

--
View this message in context: 
http://neo4j-community-discussions.438527.n3.nabble.com/getProperty-on-deleted-Node-in-TransactionEventHandler-beforeCommit-tp3320791p3321945.html
Sent from the Neo4j Community Discussions mailing list archive at Nabble.com.
___
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user


[Neo4j] Java PaaS with Neo4j (slightly off topic)

2011-09-08 Thread Christopher Schmidt
Hi all,

I am using (the embedded version of) Neo4j together with a webapplication
(WAR file for Tomcat).
Does anyone know a PaaS provider (like CloudBees) that allow a local file
storage?

(This would be a simple solution beside implementing the Neo4j Server
REST interface and f.e. using a Neo4j Heroku Addon)

-- 
Christopher
twitter: @fakod
blog: http://blog.fakod.eu
___
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user


Re: [Neo4j] Neo4j Write Test Compile Error

2011-09-08 Thread espeed

Bryce Ewing wrote:
> 
> You can get this working by replacing the parent pom reference in the
> pom.xml file with:
>   
> org.neo4j.build
> parent-central
> 25
>   
> Instead of the current:
>   
> org.neo4j
> parent-pom
> 6
>   
> 
> It still wont work quite as is though.  The build will fail on a license
> check, so do compile like:
> mvn -Dlicense.failIfMissing=false compile
> 

Sure enough. Thanks Bryce!


--
View this message in context: 
http://neo4j-community-discussions.438527.n3.nabble.com/Neo4j-Write-Test-Compile-Error-tp3321729p3321821.html
Sent from the Neo4j Community Discussions mailing list archive at Nabble.com.
___
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user


Re: [Neo4j] Neo4j Write Test Compile Error

2011-09-08 Thread Bryce
Hi James,

I initially gave this a go and it worked, but found I had cached version of
the parent pom in my local maven repo.  Removing this I got the same issue
you had.

You can get this working by replacing the parent pom reference in the
pom.xml file with:
  
org.neo4j.build
parent-central
25
  
Instead of the current:
  
org.neo4j
parent-pom
6
  

It still wont work quite as is though.  The build will fail on a license
check, so do compile like:
mvn -Dlicense.failIfMissing=false compile

Should work.

Cheers
Bryce

On Fri, Sep 9, 2011 at 2:12 PM, espeed  wrote:

> Hi Guys -
>
> I'm trying to compile and run the "write test"
> (https://svn.neo4j.org/laboratory/users/johan/write-test) from
> http://wiki.neo4j.org/content/Linux_Performance_Guide, and I'm getting
> this
> error:
>
>   https://gist.github.com/1205327
>
> Is there a newer version of this?
>
> Thanks.
>
> - James
>
> --
> View this message in context:
> http://neo4j-community-discussions.438527.n3.nabble.com/Neo4j-Write-Test-Compile-Error-tp3321729p3321729.html
> Sent from the Neo4j Community Discussions mailing list archive at
> Nabble.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] Neo4j Write Test Compile Error

2011-09-08 Thread espeed
Hi Guys -

I'm trying to compile and run the "write test"
(https://svn.neo4j.org/laboratory/users/johan/write-test) from
http://wiki.neo4j.org/content/Linux_Performance_Guide, and I'm getting this
error:

   https://gist.github.com/1205327

Is there a newer version of this?

Thanks.

- James

--
View this message in context: 
http://neo4j-community-discussions.438527.n3.nabble.com/Neo4j-Write-Test-Compile-Error-tp3321729p3321729.html
Sent from the Neo4j Community Discussions mailing list archive at Nabble.com.
___
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user


Re: [Neo4j] Blocking access to the Neo4j web admin interface

2011-09-08 Thread Linan Wang
done.
https://github.com/neo4j/community/pull/16

On Thu, Sep 8, 2011 at 11:21 PM, Michael Hunger
 wrote:
> Linan,
>
> your diff didn't make it could you just issue an pull request for that.
>
> And Peter should get you sign a CLA btw.
>
> Cheers
>
> Michael
>
> Am 08.09.2011 um 18:33 schrieb Linan Wang:
>
>> tested the idea, it doesn't work. so i made simple changes to the
>> server code and diff is attached.
>> to change the binding ip of the webserver: add following line to
>> conf/neo4j-server.properties:
>> org.neo4j.server.webserver.address=127.0.0.1
>>
>> On Thu, Sep 8, 2011 at 2:55 PM, Peter Neubauer
>>  wrote:
>>> That sounds good. Could you try it and report back? Would love to add
>>> it to the manual and as a setting.
>>>
>>> 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, Sep 8, 2011 at 3:34 PM, Linan Wang  wrote:
 since neo4j just uses jetty, i think the simple solution would be add
 option in neo4j shell script:
 -Djetty.host=127.0.0.1 to make it only listen to local request. then
 use ssh tunnel to expose service to designated machines.

 On Thu, Sep 8, 2011 at 2:18 PM, Peter Neubauer
  wrote:
> Hi there,
> you can block access to it by blocking the access to the URL
> (localhost:.../webadmin) and even /db/manage. That requires probably
> to set up apache and mod_proxy in front of the Neo4j server, but I
> think that is a good idea in production scenarios anyway.
>
> http://docs.neo4j.org/chunked/snapshot/operations-security.html
>
> 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, Sep 8, 2011 at 3:08 PM, carze  wrote:
>> I'm making use of the Neo4j REST API to power a website and was 
>> wondering if
>> there was any way to block access to the web admin interface. Currently 
>> the
>> DB is in read-only mode but the web admin panel is accessibly by anyone 
>> who
>> can stumble upon the URL.
>>
>> --
>> View this message in context: 
>> http://neo4j-community-discussions.438527.n3.nabble.com/Blocking-access-to-the-Neo4j-web-admin-interface-tp3319626p3319626.html
>> Sent from the Neo4j Community Discussions mailing list archive at 
>> Nabble.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
>



 --
 Best regards

 Linan Wang
 ___
 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
>>>
>>
>>
>>
>> --
>> Best regards
>>
>> Linan Wang
>> ___
>> 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
>



-- 
Best regards

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


Re: [Neo4j] Blocking access to the Neo4j web admin interface

2011-09-08 Thread Michael Hunger
Linan,

your diff didn't make it could you just issue an pull request for that.

And Peter should get you sign a CLA btw.

Cheers

Michael

Am 08.09.2011 um 18:33 schrieb Linan Wang:

> tested the idea, it doesn't work. so i made simple changes to the
> server code and diff is attached.
> to change the binding ip of the webserver: add following line to
> conf/neo4j-server.properties:
> org.neo4j.server.webserver.address=127.0.0.1
> 
> On Thu, Sep 8, 2011 at 2:55 PM, Peter Neubauer
>  wrote:
>> That sounds good. Could you try it and report back? Would love to add
>> it to the manual and as a setting.
>> 
>> 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, Sep 8, 2011 at 3:34 PM, Linan Wang  wrote:
>>> since neo4j just uses jetty, i think the simple solution would be add
>>> option in neo4j shell script:
>>> -Djetty.host=127.0.0.1 to make it only listen to local request. then
>>> use ssh tunnel to expose service to designated machines.
>>> 
>>> On Thu, Sep 8, 2011 at 2:18 PM, Peter Neubauer
>>>  wrote:
 Hi there,
 you can block access to it by blocking the access to the URL
 (localhost:.../webadmin) and even /db/manage. That requires probably
 to set up apache and mod_proxy in front of the Neo4j server, but I
 think that is a good idea in production scenarios anyway.
 
 http://docs.neo4j.org/chunked/snapshot/operations-security.html
 
 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, Sep 8, 2011 at 3:08 PM, carze  wrote:
> I'm making use of the Neo4j REST API to power a website and was wondering 
> if
> there was any way to block access to the web admin interface. Currently 
> the
> DB is in read-only mode but the web admin panel is accessibly by anyone 
> who
> can stumble upon the URL.
> 
> --
> View this message in context: 
> http://neo4j-community-discussions.438527.n3.nabble.com/Blocking-access-to-the-Neo4j-web-admin-interface-tp3319626p3319626.html
> Sent from the Neo4j Community Discussions mailing list archive at 
> Nabble.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
 
>>> 
>>> 
>>> 
>>> --
>>> Best regards
>>> 
>>> Linan Wang
>>> ___
>>> 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
>> 
> 
> 
> 
> -- 
> Best regards
> 
> Linan Wang
> ___
> 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] regarding supernode

2011-09-08 Thread Linan Wang
On Wed, Sep 7, 2011 at 5:21 PM, Linan Wang  wrote:
> hi,
> I don't quite understand RelationshipIndex and RelationshipExpander.
> say I have a supernode city (beijing), it has 10 m users links to
> through relationship LIVES_IN. so how should I index? should be
> something like:
> RelationshipIndex idx = db.index().forRelationships("CITY_LIVES_IN");
> idx.add(rel, "LIVES_IN", "Beijing");
> if so, what's the advantage over this?
> Index idx = db.index().forNodes("CITY_LIVES_IN");
> idx.add(user, "LIVES_IN", "beijing");
> (I read source code of LuceneIndex.java, found out that the
> implementation of the add method is shared between Index and
> RelationshipIndex.)
ok, i answer my own question:
RelationshipIndex has the function query which takes startNode and
endNode as extra parameters.
so if traverse only depth 1, it could be faster than using Traverser.
am i right here? (please say yes!)
then the question is how to take advantage of it for more than 1?

>
> about RelationshipExpander. i don't see how RelationshipIndex could
> help combining with RelationshipExpander, when use
> GraphAlgoFactory.shortestPath(RelationshipExpander expander, int
> maxDepth)?
>
> thanks for help!
>
> --
> Best regards
>
> Linan Wang
>



-- 
Best regards

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


Re: [Neo4j] maximum number of nodes

2011-09-08 Thread Peter Neubauer
Akhil,
i theory, this should be possible, see
http://docs.neo4j.org/chunked/snapshot/capabilities-capacity.html .
However, with that number of nodes etc, you need probably very
specialized hardware to run any form of performant traversal over this
data. If you want to do this, I suggest you put up a project to
seriously look at importing times, hardware and graph algos to be
performed. Do you have more info on the type of research you want to
do?

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, Sep 8, 2011 at 9:43 PM, Akhil  wrote:
> Do you believe that neo4j will be able to store between 20 - 30 billion
> nodes ? I am talking about genomics data.
>
> Akhil
> ___
> 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] maximum number of nodes

2011-09-08 Thread Akhil
Do you believe that neo4j will be able to store between 20 - 30 billion 
nodes ? I am talking about genomics data.

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


[Neo4j] getProperty() on deleted Node in TransactionEventHandler.beforeCommit()

2011-09-08 Thread tcolar
We have an implementation of TransactionEventHandler

in the method beforeCommit() I would like to use getProperty("nodeType") ..
so I can take proper action.
Now in the case of a deletion event, it won't let me call it and throws an
exception.

I'm surprised by this exception has this is beforeCommit() and the node is
not delete YET.

public Neo4JTransaction beforeCommit(TransactionData data) throws Exception
{
for (Node deletedNode : data.deletedNodes()) {
boolean b = deletedNode.hasproperty("type") // Fails with 
Exception
}
}

Caused by: java.lang.IllegalStateException: Node[9] has been deleted in this
tx
at
org.neo4j.kernel.impl.core.LockReleaser.getCowPropertyRemoveMap(LockReleaser.java:450)
at
org.neo4j.kernel.impl.core.NodeManager.getCowPropertyRemoveMap(NodeManager.java:991)
at org.neo4j.kernel.impl.core.Primitive.hasProperty(Primitive.java:278)
at org.neo4j.kernel.impl.core.NodeProxy.hasProperty(NodeProxy.java:150)

Is this expected / a bug ?

Any alternatives ?

Thanks.

--
View this message in context: 
http://neo4j-community-discussions.438527.n3.nabble.com/getProperty-on-deleted-Node-in-TransactionEventHandler-beforeCommit-tp3320791p3320791.html
Sent from the Neo4j Community Discussions mailing list archive at Nabble.com.
___
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user


[Neo4j] Recommended way to index and lookup paired properties

2011-09-08 Thread Aseem Kishore
Hey guys, quick question on indexing.

We track Amazon products in our db, and the way Amazon identifies its
products is with an Amazon Standard Identification Number (ASIN). The only
catch is that ASINs are only unique within a particular locale, and Amazon
has a few different locales (e.g. us, uk, de, jp, etc.).

Because of this, when we index and lookup Amazon products, we need to index
and lookup with *both* properties together. E.g. we really want to index the
pair.

As such -- and because we use Neo4j's auto-indexing -- we created a shadow
"locale+asin" property that sits alongside the regular "locale" and "asin"
properties, and it's a concatenation of the two values,
e.g. "us+A123456789". We thus index and perform lookups via this shadow
property.

Recently, though, I saw that you can query even "exact" indexes with complex
Lucene syntax, so in theory, we could ditch the shadow property and query
something like "(locale:us AND asin:A123456789)". Will this be slower
though, if there many items w/ the same locale?

Generalizing, then, which of these two routes is the recommended way of
indexing paired properties? (Or is there a third way?) Thanks!

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


Re: [Neo4j] Size on disk, and number of properties

2011-09-08 Thread Aseem Kishore
That is awesomely helpful info. Thank you very much!

Aseem

On Thu, Sep 8, 2011 at 12:55 AM, Chris Gioran <
chris.gio...@neotechnology.com> wrote:

> Hi Assem
>
> The logical log file is where all changes to be performed to the store
> are written out before they are actually applied - also referred to as
> the Write Ahead Log. The file that hosts this is bound to a specific
> size above which a rotation happens: a new file is created to host the
> WAL, all pending transactions are moved over, the store files are
> flushed and the old file marked as unused.
> Setting the configuration option "keep_logical_logs" to "false"
> deletes the old log files instead of keeping them around when that
> size limit is hit and a rotation is triggered.
>
> Hope that clear things up.
>
> cheers,
> CG
>
> On Wed, Sep 7, 2011 at 8:58 PM, Aseem Kishore 
> wrote:
> > Thanks Johan!
> >
> > Configuring Neo4j with "keep_logical_logs=false" the logs will
> >> automatically be deleted upon rotation.
> >
> >
> > What does "upon rotation" mean here?
> >
> > Aseem
> >
> > On Wed, Sep 7, 2011 at 5:56 AM, Johan Svensson  >wrote:
> >
> >> Removing the log files ending with ".v" at runtime is
> >> perfectly safe to do but will turn off the ability to do incremental
> >> backups. You can however still perform live full backups.
> >>
> >> Configuring Neo4j with "keep_logical_logs=false" the logs will
> >> automatically be deleted upon rotation.
> >>
> >> -Johan
> >>
> >> On Sat, Sep 3, 2011 at 1:49 AM, Aseem Kishore 
> >> wrote:
> >> > Thanks for the insights Johan!
> >> >
> >> > Regarding the existing disk space then, by far the bulk of it is from
> the
> >> > logs. Is there a way to prune or garbage collect them? Is simply
> deleting
> >> > the files safe? Should the db be off if I do that? Etc.
> >> >
> >> > Thanks much!
> >> >
> >> > Aseem
> >> >
> >> > On Tue, Aug 30, 2011 at 2:47 AM, Johan Svensson <
> jo...@neotechnology.com
> >> >wrote:
> >> >
> >> >> Hi Aseem,
> >> >>
> >> >> This is actually expected behavior when performing file copy of
> >> >> running db and starting up with default configuration. If you remove
> >> >> the files ending with .id in the db directory on the local snapshot
> >> >> and start up setting "rebuild_idgenerators_fast=false" you should see
> >> >> the accurate amount of nodes, relationships and properties.
> >> >>
> >> >> Regarding the amount of properties not matching this could be due to
> a
> >> >> non clean shutdown on the production system. We are planing on
> >> >> improving this in the near future by allowing for more aggressive
> >> >> reuse of ids for properties. This will specifically improve things
> for
> >> >> workloads that perform a lot of property updates.
> >> >>
> >> >> -Johan
> >> >>
> >> >> On Tue, Aug 30, 2011 at 10:05 AM, Aseem Kishore <
> >> aseem.kish...@gmail.com>
> >> >> wrote:
> >> >> > Hey guys,
> >> >> >
> >> >> > We do offline backups of our db on a semi-regular basis (every few
> >> days),
> >> >> > where we (1) stop the running db, (2) copy its data directory and
> (3)
> >> >> > restart the db.
> >> >> >
> >> >> > A few times early on, we did running backups -- but not the proper
> >> >> "online"
> >> >> > way -- where we simply copied the data directory while the db was
> >> still
> >> >> > running. (We did this during times where we were confident no
> requests
> >> >> were
> >> >> > hitting the db.)
> >> >> >
> >> >> > We noticed that every time we did the running backup, the number of
> >> >> > properties the web admin reported -- and the space on disk of the
> db
> >> --
> >> >> > would jump up quite a bit. We stopped doing that recently.
> >> >> >
> >> >> > But even now, both these numbers have gotten quite a bit higher
> than
> >> we
> >> >> > expect to, and strangely, they seem to differ highly between the
> >> running
> >> >> db
> >> >> > and the copies.
> >> >> >
> >> >> > What could be causing all of this?
> >> >> >
> >> >> > Here are our current numbers:
> >> >> >
> >> >> > *Production*
> >> >> > - 2,338 nodes
> >> >> > - 4,473 rels
> >> >> > - 114,231 props (higher than we would expect it to be, but not by
> an
> >> >> order
> >> >> > of magnitude)
> >> >> > - *1.39 GB!* <-- this is way unexpected, particularly since our db
> >> used
> >> >> to
> >> >> > be in the ~10 KB ballpark, and we certainly haven't experienced
> hockey
> >> >> stick
> >> >> > growth yet ;) The logical log only takes up 57 KB (0%) btw.
> >> >> >
> >> >> >
> >> >> > *Local snapshot*
> >> >> > - 2,338 nodes
> >> >> > - 4,473 rels
> >> >> > - *2,607,892 props!!!* <-- ???
> >> >> > - *1.37 GB!* <-- equally surprisingly high, but also interesting
> that
> >> >> it's
> >> >> > less than the production db's size. 0 KB logical logs.
> >> >> >
> >> >> >
> >> >> > I looked around the wiki and searched this mailing list but didn't
> >> find
> >> >> much
> >> >> > clues here. But as requested on another thread, here's the output
> of
> >> `ls
> >> >> -lh
> >> >> > data/graph.db/`:
> >> >> >
> >> >> 

Re: [Neo4j] Blocking access to the Neo4j web admin interface

2011-09-08 Thread Linan Wang
tested the idea, it doesn't work. so i made simple changes to the
server code and diff is attached.
to change the binding ip of the webserver: add following line to
conf/neo4j-server.properties:
org.neo4j.server.webserver.address=127.0.0.1

On Thu, Sep 8, 2011 at 2:55 PM, Peter Neubauer
 wrote:
> That sounds good. Could you try it and report back? Would love to add
> it to the manual and as a setting.
>
> 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, Sep 8, 2011 at 3:34 PM, Linan Wang  wrote:
>> since neo4j just uses jetty, i think the simple solution would be add
>> option in neo4j shell script:
>> -Djetty.host=127.0.0.1 to make it only listen to local request. then
>> use ssh tunnel to expose service to designated machines.
>>
>> On Thu, Sep 8, 2011 at 2:18 PM, Peter Neubauer
>>  wrote:
>>> Hi there,
>>> you can block access to it by blocking the access to the URL
>>> (localhost:.../webadmin) and even /db/manage. That requires probably
>>> to set up apache and mod_proxy in front of the Neo4j server, but I
>>> think that is a good idea in production scenarios anyway.
>>>
>>> http://docs.neo4j.org/chunked/snapshot/operations-security.html
>>>
>>> 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, Sep 8, 2011 at 3:08 PM, carze  wrote:
 I'm making use of the Neo4j REST API to power a website and was wondering 
 if
 there was any way to block access to the web admin interface. Currently the
 DB is in read-only mode but the web admin panel is accessibly by anyone who
 can stumble upon the URL.

 --
 View this message in context: 
 http://neo4j-community-discussions.438527.n3.nabble.com/Blocking-access-to-the-Neo4j-web-admin-interface-tp3319626p3319626.html
 Sent from the Neo4j Community Discussions mailing list archive at 
 Nabble.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
>>>
>>
>>
>>
>> --
>> Best regards
>>
>> Linan Wang
>> ___
>> 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
>



-- 
Best regards

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


Re: [Neo4j] Aggregate queries

2011-09-08 Thread Xavier Shay
Thanks everyone, this gives me plenty to work with. Will report back.

On Thu, Sep 8, 2011 at 7:03 AM, Marko Rodriguez wrote:

> Hey,
>
> > Won't this count dupes more than once?
> >
> > Xavier's requirements of "how many other nodes are they connected" sounds
> > like you should only count uniques, and that's why I am checking the size
> of
> > groupCount map instead of using count(). Instead of a map you could use a
> > Set with aggregate(), but I wasn't sure if they'd have the aggregate-loop
> > fix yet.
>
> Then add a uniqueObject to the pipeline.
>
>g.idx(index_name)[[key:value]].both.loop(1){it.loops <
> depth}.uniqueObject.count()
>
> > Also Xavier said, "For all nodes in a particular index". I took that to
> mean
> > all nodes in an index, not all nodes for a particular value in an index,
> > hence the wildcard query:
> >
> > index_nodes = g.idx(index_name).get(index_key,Neo4jTokens.QUERY_HEADER +
> > "*")
> >
> > However, I am not sure/can't remember if you can do a wildcard query
> without
> > at least one leading character.
>
>
> Oh then yea, the %query% header can be used.
>
> Marko.
>
> http://markorodriguez.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] possible to query spatial indexes from gremlin?

2011-09-08 Thread Boris Kizelshteyn
posted

On Thu, Sep 8, 2011 at 9:29 AM, Peter Neubauer <
peter.neuba...@neotechnology.com> wrote:

> Boris,
> could you please raise an issue in Neo4j Spatial so I can start
> investigating this?
>
> https://github.com/neo4j/spatial/issues?sort=created&direction=desc&state=open
> so we can track it down. Please provide REST calls that work and that
> don't, will add it to the integration testing :)
>
> 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, Sep 8, 2011 at 3:20 PM, Boris Kizelshteyn 
> wrote:
> > correct, but through the spatial plugin via rest not gremlin.
> >
> >>
> >>
> >>
> >> On Thu, Sep 8, 2011 at 4:23 AM, Peter Neubauer <
> >> peter.neuba...@neotechnology.com> wrote:
> >>
> >>> Boris,
> >>> you are seeing the expected results through REST but not through the
> >>> Webadmin with this query? That sounds like a bug then.
> >>>
> >>> 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 Wed, Sep 7, 2011 at 5:26 PM, Boris Kizelshteyn 
> >>> wrote:
> >>> > Hi Peter,
> >>> >
> >>> > still no joy, I run the following query:
> >>> >
> >>> > g.idx('UsersWorld').get('bbox','[-71.070231297681, 42.351920260159,
> >>> > -71.091167203206, 42.375030765981]').count()
> >>> >
> >>> > but get no results, when I run the same query through the rest plugin
> I
> >>> get
> >>> > the expected results. I see the index is registered as spatial in the
> >>> index
> >>> > view. I'm, not sure what else to try.
> >>> >
> >>> > Any help would be appreciated!
> >>> >
> >>> >
> >>> > On Wed, Sep 7, 2011 at 8:21 AM, Peter Neubauer <
> >>> > peter.neuba...@neotechnology.com> wrote:
> >>> >
> >>> >> Boris,
> >>> >> here is finally a working example of a Gremlin index search in Neo4j
> >>> >> Spatial, see
> >>> >>
> >>> >>
> >>>
> https://github.com/neo4j/spatial/blob/master/src/test/java/org/neo4j/gis/spatial/IndexProviderTest.java#L132
> >>> >>
> >>> >> Let us know if this helps!
> >>> >>
> >>> >> 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 Mon, Aug 22, 2011 at 3:27 PM, Peter Neubauer <
> >>> >> peter.neuba...@neotechnology.com> wrote:
> >>> >>
> >>> >> > Boris,
> >>> >> > the name of the index is the name of the corresponding Layer you
> want
> >>> >> > to work with, so you should do something like
> >>> >> >
> >>> >> >  http> POST /db/data/index/node/
> >>> >> >
> >>> >> >
> >>> >>
> >>>
> {"name":"a72952a1-0969-4fae-87ce-ff404a7b8a3e_world","config":{"provider":"spatial"}}
> >>> >> >
> >>> >> > in order to get one of your existing layers. otherwise, a new
> layer
> >>> >> > will be created for you, which is not what you want right? I don't
> >>> >> > know which layers have data in them ... let me know if that works.
> >>> >> >
> >>> >> > 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, Aug 18, 2011 at 5:03 PM, Boris Kizelshteyn <
> bo...@popcha.com
> >>> >
> >>> >> > wrote:
> >>> >> > > Hi Peter,
> >>> >> > >
> >>> >> > > I'm finally trying this query out, but not getting any results.
> Do
> >>> I
> >>> >> need
> >>> >> > to
> >>> >> > > rebuild neo4j-spatial? I sent the index command successfully:
> >>> >

Re: [Neo4j] Aggregate queries

2011-09-08 Thread Marko Rodriguez
Hey,

> Won't this count dupes more than once? 
> 
> Xavier's requirements of "how many other nodes are they connected" sounds
> like you should only count uniques, and that's why I am checking the size of
> groupCount map instead of using count(). Instead of a map you could use a
> Set with aggregate(), but I wasn't sure if they'd have the aggregate-loop
> fix yet. 

Then add a uniqueObject to the pipeline.

g.idx(index_name)[[key:value]].both.loop(1){it.loops < 
depth}.uniqueObject.count()

> Also Xavier said, "For all nodes in a particular index". I took that to mean
> all nodes in an index, not all nodes for a particular value in an index,
> hence the wildcard query:
> 
> index_nodes = g.idx(index_name).get(index_key,Neo4jTokens.QUERY_HEADER +
> "*")
> 
> However, I am not sure/can't remember if you can do a wildcard query without
> at least one leading character.


Oh then yea, the %query% header can be used. 

Marko.

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


Re: [Neo4j] Blocking access to the Neo4j web admin interface

2011-09-08 Thread Peter Neubauer
That sounds good. Could you try it and report back? Would love to add
it to the manual and as a setting.

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, Sep 8, 2011 at 3:34 PM, Linan Wang  wrote:
> since neo4j just uses jetty, i think the simple solution would be add
> option in neo4j shell script:
> -Djetty.host=127.0.0.1 to make it only listen to local request. then
> use ssh tunnel to expose service to designated machines.
>
> On Thu, Sep 8, 2011 at 2:18 PM, Peter Neubauer
>  wrote:
>> Hi there,
>> you can block access to it by blocking the access to the URL
>> (localhost:.../webadmin) and even /db/manage. That requires probably
>> to set up apache and mod_proxy in front of the Neo4j server, but I
>> think that is a good idea in production scenarios anyway.
>>
>> http://docs.neo4j.org/chunked/snapshot/operations-security.html
>>
>> 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, Sep 8, 2011 at 3:08 PM, carze  wrote:
>>> I'm making use of the Neo4j REST API to power a website and was wondering if
>>> there was any way to block access to the web admin interface. Currently the
>>> DB is in read-only mode but the web admin panel is accessibly by anyone who
>>> can stumble upon the URL.
>>>
>>> --
>>> View this message in context: 
>>> http://neo4j-community-discussions.438527.n3.nabble.com/Blocking-access-to-the-Neo4j-web-admin-interface-tp3319626p3319626.html
>>> Sent from the Neo4j Community Discussions mailing list archive at 
>>> Nabble.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
>>
>
>
>
> --
> Best regards
>
> Linan Wang
> ___
> 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] Aggregate queries

2011-09-08 Thread espeed

Marko Rodriguez-2 wrote:
> 
>>
>>> "For all nodes in a particular index, how many other nodes are they 
>>> connected to at depth X?" 
> 
> Here is how I would do it -- groupCount is not needed.
> 
>   g.idx(index_name)[[key:value]].both.loop(1){it.loops < depth}.count()
> 
> 

Thanks Marko. A couple questions...

Won't this count dupes more than once? 

Xavier's requirements of "how many other nodes are they connected" sounds
like you should only count uniques, and that's why I am checking the size of
groupCount map instead of using count(). Instead of a map you could use a
Set with aggregate(), but I wasn't sure if they'd have the aggregate-loop
fix yet. 

Also Xavier said, "For all nodes in a particular index". I took that to mean
all nodes in an index, not all nodes for a particular value in an index,
hence the wildcard query:

index_nodes = g.idx(index_name).get(index_key,Neo4jTokens.QUERY_HEADER +
"*")
 
However, I am not sure/can't remember if you can do a wildcard query without
at least one leading character.

- James





--
View this message in context: 
http://neo4j-community-discussions.438527.n3.nabble.com/Neo4j-Aggregate-queries-tp3317720p3319768.html
Sent from the Neo4j Community Discussions mailing list archive at Nabble.com.
___
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user


Re: [Neo4j] Issues with IndexedRelationship

2011-09-08 Thread Peter Neubauer
Niels, Bryce,
great! Gave you access to the repo, please merge :)

/peter

On Thu, Sep 8, 2011 at 2:32 PM, Niels Hoogeveen
 wrote:
>
> Excellent... I did a code review and think this is a huge improvement over 
> what we had.
> Peter, can you pull these changes, I no longer have the privs to do so.
> Niels
>
>> Date: Thu, 8 Sep 2011 17:24:44 +1200
>> From: bryc...@gmail.com
>> To: user@lists.neo4j.org
>> Subject: Re: [Neo4j] Issues with IndexedRelationship
>>
>> I have made the changes in regards to SortedTree in regards to relationships
>> vs nodes, and have got all the tests passing.  The changes are pushed up to
>> my github account (and pull request has been raised).
>>
>> The changes can be seen here:
>> https://github.com/brycenz/graph-collections
>>
>> On Thu, Sep 8, 2011 at 3:41 PM, Bryce  wrote:
>>
>> > Another thought if there is going to be a larger refactor of the code is
>> > whether the indexing mechanism should be broken out as a strategy for the
>> > IndexedRelationship.  At present it is tied to SortedTree, but if an
>> > interface was extracted out that had addNode, removeNode, iterator, and
>> > isUniqueIndex then other indexing implementations could be used in certain
>> > cases.
>> >
>> > The particular other implementation I am currently thinking of that could
>> > be of use to me would be a paged linked list.  So that would have a linked
>> > list of pages, each with min < x < max KEY_VALUE (or equivalent)
>> > relationships.  I think that could work quite well for the situation where
>> > the index is descending date ordered, and generally just appended at the
>> > most recent end, and results are retrieved in a paged manner generally from
>> > near the most recent.
>> >
>> > But more to the point there could be any number of implementations that
>> > would be good for given different situations.
>> >
>> > That does bring up a question though, there was some discussion a while ago
>> > about some functionality along the lines of IndexedRelationship being 
>> > pulled
>> > into the core, so is that overkill for now if there is going to be another
>> > core offering later?
>> >
>> >
>> > On Thu, Sep 8, 2011 at 2:38 PM, Niels Hoogeveen > > > wrote:
>> >
>> >>
>> >> I think we don't have to worry about backwards compatibility much yet.
>> >> There has not been a formal release of the component, so if there are 
>> >> people
>> >> using the software, they will accept that they are bleeding edgers.
>> >> Indeed addNode should return the KEY_VALUE relationship and I think we
>> >> should change the signature of SortedTree to turn it into
>> >> Iterable. No need to maintain a Node iterator, the node is
>> >> always one getEndNode away.
>> >> Niels
>> >>
>> >> > Date: Thu, 8 Sep 2011 14:17:59 +1200
>> >> > From: bryc...@gmail.com
>> >> > To: user@lists.neo4j.org
>> >> > Subject: Re: [Neo4j] Issues with IndexedRelationship
>> >> >
>> >> > Will have to experiment with changing my id's to be stored as longs, it
>> >> does
>> >> > make perfect sense really that it would be better.  Thanks for the hint.
>> >> >
>> >> > In regards to SortedTree returning the KEY_VALUE relationship instead of
>> >> the
>> >> > end Node, I had thought of that too, and it would definitely help.
>> >>  Could
>> >> > end up being a significant change to SortedTree though, e.g.:
>> >> >   sortedTree.addNode( node );
>> >> > Would need to return the KEY_VALUE relationship instead of a boolean.
>> >>  Which
>> >> > not knowing where else SortedTree is used could be a large change?
>> >> >
>> >> > Maybe SortedTree would have two iterator's available a key_value
>> >> > relationship iterator, and a node iterator.  Having a quick look at it
>> >> now
>> >> > it seems that it could work ok that way without introducing much code
>> >> > duplication.
>> >> >
>> >> > On Thu, Sep 8, 2011 at 12:46 PM, Niels Hoogeveen
>> >> > wrote:
>> >> >
>> >> > >
>> >> > > Two longs is certainly cheaper than a string. Two longs take 128 bit
>> >> and
>> >> > > are stored in the main record of the PropertyContainer, while a String
>> >> would
>> >> > > require a 64 bit "pointer" in the main record of the
>> >> PropertyContainer, and
>> >> > > an additional read in the String store where the string representation
>> >> will
>> >> > > take up 256 bits. So both memory-wise, as perfomance wise, it is
>> >> better to
>> >> > > store a UUID as two long values.
>> >> > >
>> >> > >
>> >> > > The main issue is something that needs a deeper fix than adding ID's.
>> >> > > SortedTree now returns Nodes when traversing the tree. We should
>> >> however
>> >> > > return the KEY_VALUE Relationship to the indexed Node. Then
>> >> > > IndexedRelationship.DirectRelationship can be created with that
>> >> relationship
>> >> > > as an argument. We get the Direction and the RelationshipType for
>> >> free.
>> >> > > Niels
>> >> > >
>> >> > > > Date: Thu, 8 Sep 2011 11:36:11 +1200
>> >> > > > From: bryc...@gmail.com
>> >> > > > To: user@lists.neo4j.org
>> >> > > > Su

Re: [Neo4j] Blocking access to the Neo4j web admin interface

2011-09-08 Thread Linan Wang
since neo4j just uses jetty, i think the simple solution would be add
option in neo4j shell script:
-Djetty.host=127.0.0.1 to make it only listen to local request. then
use ssh tunnel to expose service to designated machines.

On Thu, Sep 8, 2011 at 2:18 PM, Peter Neubauer
 wrote:
> Hi there,
> you can block access to it by blocking the access to the URL
> (localhost:.../webadmin) and even /db/manage. That requires probably
> to set up apache and mod_proxy in front of the Neo4j server, but I
> think that is a good idea in production scenarios anyway.
>
> http://docs.neo4j.org/chunked/snapshot/operations-security.html
>
> 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, Sep 8, 2011 at 3:08 PM, carze  wrote:
>> I'm making use of the Neo4j REST API to power a website and was wondering if
>> there was any way to block access to the web admin interface. Currently the
>> DB is in read-only mode but the web admin panel is accessibly by anyone who
>> can stumble upon the URL.
>>
>> --
>> View this message in context: 
>> http://neo4j-community-discussions.438527.n3.nabble.com/Blocking-access-to-the-Neo4j-web-admin-interface-tp3319626p3319626.html
>> Sent from the Neo4j Community Discussions mailing list archive at Nabble.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
>



-- 
Best regards

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


Re: [Neo4j] possible to query spatial indexes from gremlin?

2011-09-08 Thread Peter Neubauer
Boris,
could you please raise an issue in Neo4j Spatial so I can start
investigating this?
https://github.com/neo4j/spatial/issues?sort=created&direction=desc&state=open
so we can track it down. Please provide REST calls that work and that
don't, will add it to the integration testing :)

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, Sep 8, 2011 at 3:20 PM, Boris Kizelshteyn  wrote:
> correct, but through the spatial plugin via rest not gremlin.
>
>>
>>
>>
>> On Thu, Sep 8, 2011 at 4:23 AM, Peter Neubauer <
>> peter.neuba...@neotechnology.com> wrote:
>>
>>> Boris,
>>> you are seeing the expected results through REST but not through the
>>> Webadmin with this query? That sounds like a bug then.
>>>
>>> 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 Wed, Sep 7, 2011 at 5:26 PM, Boris Kizelshteyn 
>>> wrote:
>>> > Hi Peter,
>>> >
>>> > still no joy, I run the following query:
>>> >
>>> > g.idx('UsersWorld').get('bbox','[-71.070231297681, 42.351920260159,
>>> > -71.091167203206, 42.375030765981]').count()
>>> >
>>> > but get no results, when I run the same query through the rest plugin I
>>> get
>>> > the expected results. I see the index is registered as spatial in the
>>> index
>>> > view. I'm, not sure what else to try.
>>> >
>>> > Any help would be appreciated!
>>> >
>>> >
>>> > On Wed, Sep 7, 2011 at 8:21 AM, Peter Neubauer <
>>> > peter.neuba...@neotechnology.com> wrote:
>>> >
>>> >> Boris,
>>> >> here is finally a working example of a Gremlin index search in Neo4j
>>> >> Spatial, see
>>> >>
>>> >>
>>> https://github.com/neo4j/spatial/blob/master/src/test/java/org/neo4j/gis/spatial/IndexProviderTest.java#L132
>>> >>
>>> >> Let us know if this helps!
>>> >>
>>> >> 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 Mon, Aug 22, 2011 at 3:27 PM, Peter Neubauer <
>>> >> peter.neuba...@neotechnology.com> wrote:
>>> >>
>>> >> > Boris,
>>> >> > the name of the index is the name of the corresponding Layer you want
>>> >> > to work with, so you should do something like
>>> >> >
>>> >> >  http> POST /db/data/index/node/
>>> >> >
>>> >> >
>>> >>
>>> {"name":"a72952a1-0969-4fae-87ce-ff404a7b8a3e_world","config":{"provider":"spatial"}}
>>> >> >
>>> >> > in order to get one of your existing layers. otherwise, a new layer
>>> >> > will be created for you, which is not what you want right? I don't
>>> >> > know which layers have data in them ... let me know if that works.
>>> >> >
>>> >> > 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, Aug 18, 2011 at 5:03 PM, Boris Kizelshteyn >> >
>>> >> > wrote:
>>> >> > > Hi Peter,
>>> >> > >
>>> >> > > I'm finally trying this query out, but not getting any results. Do
>>> I
>>> >> need
>>> >> > to
>>> >> > > rebuild neo4j-spatial? I sent the index command successfully:
>>> >> > >
>>> >> > >
>>> >> > >   -
>>> >> > >   http> POST /db/data/index/node/ {"name":"UsersWorld",
>>> >> > > "config":{"provider":"spatial"}}
>>> >> > >   - ==> 201 Created
>>> >> > >   - ==> {
>>> >> > >   - ==>   "template" : "
>>> >> > >
>>> >> >
>>> >>
>>> http://reach.media.mit.edu:7474/db/data/index/node/UsersWorld/{key}/{value}
>>> >> > >   ",
>>> >> > >   - ==>   "provider" : "spatial"
>>> >> > >   - ==> }
>>> >> 

Re: [Neo4j] possible to query spatial indexes from gremlin?

2011-09-08 Thread Boris Kizelshteyn
correct, but through the spatial plugin via rest not gremlin.

>
>
>
> On Thu, Sep 8, 2011 at 4:23 AM, Peter Neubauer <
> peter.neuba...@neotechnology.com> wrote:
>
>> Boris,
>> you are seeing the expected results through REST but not through the
>> Webadmin with this query? That sounds like a bug then.
>>
>> 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 Wed, Sep 7, 2011 at 5:26 PM, Boris Kizelshteyn 
>> wrote:
>> > Hi Peter,
>> >
>> > still no joy, I run the following query:
>> >
>> > g.idx('UsersWorld').get('bbox','[-71.070231297681, 42.351920260159,
>> > -71.091167203206, 42.375030765981]').count()
>> >
>> > but get no results, when I run the same query through the rest plugin I
>> get
>> > the expected results. I see the index is registered as spatial in the
>> index
>> > view. I'm, not sure what else to try.
>> >
>> > Any help would be appreciated!
>> >
>> >
>> > On Wed, Sep 7, 2011 at 8:21 AM, Peter Neubauer <
>> > peter.neuba...@neotechnology.com> wrote:
>> >
>> >> Boris,
>> >> here is finally a working example of a Gremlin index search in Neo4j
>> >> Spatial, see
>> >>
>> >>
>> https://github.com/neo4j/spatial/blob/master/src/test/java/org/neo4j/gis/spatial/IndexProviderTest.java#L132
>> >>
>> >> Let us know if this helps!
>> >>
>> >> 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 Mon, Aug 22, 2011 at 3:27 PM, Peter Neubauer <
>> >> peter.neuba...@neotechnology.com> wrote:
>> >>
>> >> > Boris,
>> >> > the name of the index is the name of the corresponding Layer you want
>> >> > to work with, so you should do something like
>> >> >
>> >> >  http> POST /db/data/index/node/
>> >> >
>> >> >
>> >>
>> {"name":"a72952a1-0969-4fae-87ce-ff404a7b8a3e_world","config":{"provider":"spatial"}}
>> >> >
>> >> > in order to get one of your existing layers. otherwise, a new layer
>> >> > will be created for you, which is not what you want right? I don't
>> >> > know which layers have data in them ... let me know if that works.
>> >> >
>> >> > 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, Aug 18, 2011 at 5:03 PM, Boris Kizelshteyn > >
>> >> > wrote:
>> >> > > Hi Peter,
>> >> > >
>> >> > > I'm finally trying this query out, but not getting any results. Do
>> I
>> >> need
>> >> > to
>> >> > > rebuild neo4j-spatial? I sent the index command successfully:
>> >> > >
>> >> > >
>> >> > >   -
>> >> > >   http> POST /db/data/index/node/ {"name":"UsersWorld",
>> >> > > "config":{"provider":"spatial"}}
>> >> > >   - ==> 201 Created
>> >> > >   - ==> {
>> >> > >   - ==>   "template" : "
>> >> > >
>> >> >
>> >>
>> http://reach.media.mit.edu:7474/db/data/index/node/UsersWorld/{key}/{value}
>> >> > >   ",
>> >> > >   - ==>   "provider" : "spatial"
>> >> > >   - ==> }
>> >> > >
>> >> > >
>> >> > > But when I query, I get nothing (same query from the plugin
>> produces
>> >> > > results):
>> >> > >
>> >> > >
>> >> >
>> >>
>> g.idx('UsersWorld').get('bbox','[-71.33467375967257,42.26157716735279,-70.83994567129366,42.45920025563372]')
>> >> > >
>> >> > > Thanks!
>> >> > >
>> >> > >
>> >> > > On Mon, Aug 8, 2011 at 6:49 PM, Peter Neubauer <
>> >> > > peter.neuba...@neotechnology.com> wrote:
>> >> > >
>> >> > >> You are to surf and have fun.
>> >> > >>
>> >> > >> pushed g.idx('test').get('bbox','[15.0, 16.0, 56.0, 61.0]')
>> >> > >>
>> >> > >> 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 

Re: [Neo4j] Blocking access to the Neo4j web admin interface

2011-09-08 Thread Peter Neubauer
Hi there,
you can block access to it by blocking the access to the URL
(localhost:.../webadmin) and even /db/manage. That requires probably
to set up apache and mod_proxy in front of the Neo4j server, but I
think that is a good idea in production scenarios anyway.

http://docs.neo4j.org/chunked/snapshot/operations-security.html

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, Sep 8, 2011 at 3:08 PM, carze  wrote:
> I'm making use of the Neo4j REST API to power a website and was wondering if
> there was any way to block access to the web admin interface. Currently the
> DB is in read-only mode but the web admin panel is accessibly by anyone who
> can stumble upon the URL.
>
> --
> View this message in context: 
> http://neo4j-community-discussions.438527.n3.nabble.com/Blocking-access-to-the-Neo4j-web-admin-interface-tp3319626p3319626.html
> Sent from the Neo4j Community Discussions mailing list archive at Nabble.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] Blocking access to the Neo4j web admin interface

2011-09-08 Thread carze
I'm making use of the Neo4j REST API to power a website and was wondering if
there was any way to block access to the web admin interface. Currently the
DB is in read-only mode but the web admin panel is accessibly by anyone who
can stumble upon the URL.

--
View this message in context: 
http://neo4j-community-discussions.438527.n3.nabble.com/Blocking-access-to-the-Neo4j-web-admin-interface-tp3319626p3319626.html
Sent from the Neo4j Community Discussions mailing list archive at Nabble.com.
___
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user


Re: [Neo4j] Issues with IndexedRelationship

2011-09-08 Thread Niels Hoogeveen

I like this idea

> Date: Thu, 8 Sep 2011 15:41:52 +1200
> From: bryc...@gmail.com
> To: user@lists.neo4j.org
> Subject: Re: [Neo4j] Issues with IndexedRelationship
> 
> Another thought if there is going to be a larger refactor of the code is
> whether the indexing mechanism should be broken out as a strategy for the
> IndexedRelationship.  At present it is tied to SortedTree, but if an
> interface was extracted out that had addNode, removeNode, iterator, and
> isUniqueIndex then other indexing implementations could be used in certain
> cases.
> 
> The particular other implementation I am currently thinking of that could be
> of use to me would be a paged linked list.  So that would have a linked list
> of pages, each with min < x < max KEY_VALUE (or equivalent) relationships.
>  I think that could work quite well for the situation where the index is
> descending date ordered, and generally just appended at the most recent end,
> and results are retrieved in a paged manner generally from near the most
> recent.
> 
> But more to the point there could be any number of implementations that
> would be good for given different situations.
> 
> That does bring up a question though, there was some discussion a while ago
> about some functionality along the lines of IndexedRelationship being pulled
> into the core, so is that overkill for now if there is going to be another
> core offering later?
> 
> On Thu, Sep 8, 2011 at 2:38 PM, Niels Hoogeveen
> wrote:
> 
> >
> > I think we don't have to worry about backwards compatibility much yet.
> > There has not been a formal release of the component, so if there are people
> > using the software, they will accept that they are bleeding edgers.
> > Indeed addNode should return the KEY_VALUE relationship and I think we
> > should change the signature of SortedTree to turn it into
> > Iterable. No need to maintain a Node iterator, the node is
> > always one getEndNode away.
> > Niels
> >
> > > Date: Thu, 8 Sep 2011 14:17:59 +1200
> > > From: bryc...@gmail.com
> > > To: user@lists.neo4j.org
> > > Subject: Re: [Neo4j] Issues with IndexedRelationship
> > >
> > > Will have to experiment with changing my id's to be stored as longs, it
> > does
> > > make perfect sense really that it would be better.  Thanks for the hint.
> > >
> > > In regards to SortedTree returning the KEY_VALUE relationship instead of
> > the
> > > end Node, I had thought of that too, and it would definitely help.  Could
> > > end up being a significant change to SortedTree though, e.g.:
> > >   sortedTree.addNode( node );
> > > Would need to return the KEY_VALUE relationship instead of a boolean.
> >  Which
> > > not knowing where else SortedTree is used could be a large change?
> > >
> > > Maybe SortedTree would have two iterator's available a key_value
> > > relationship iterator, and a node iterator.  Having a quick look at it
> > now
> > > it seems that it could work ok that way without introducing much code
> > > duplication.
> > >
> > > On Thu, Sep 8, 2011 at 12:46 PM, Niels Hoogeveen
> > > wrote:
> > >
> > > >
> > > > Two longs is certainly cheaper than a string. Two longs take 128 bit
> > and
> > > > are stored in the main record of the PropertyContainer, while a String
> > would
> > > > require a 64 bit "pointer" in the main record of the PropertyContainer,
> > and
> > > > an additional read in the String store where the string representation
> > will
> > > > take up 256 bits. So both memory-wise, as perfomance wise, it is better
> > to
> > > > store a UUID as two long values.
> > > >
> > > >
> > > > The main issue is something that needs a deeper fix than adding ID's.
> > > > SortedTree now returns Nodes when traversing the tree. We should
> > however
> > > > return the KEY_VALUE Relationship to the indexed Node. Then
> > > > IndexedRelationship.DirectRelationship can be created with that
> > relationship
> > > > as an argument. We get the Direction and the RelationshipType for free.
> > > > Niels
> > > >
> > > > > Date: Thu, 8 Sep 2011 11:36:11 +1200
> > > > > From: bryc...@gmail.com
> > > > > To: user@lists.neo4j.org
> > > > > Subject: Re: [Neo4j] Issues with IndexedRelationship
> > > > >
> > > > > Hi Niels,
> > > > >
> > > > > Sorry I didn't quite write the bit about (1) clearly enough.  The
> > problem
> > > > is
> > > > > that it presently throws an Exception where it shouldn't.
> > > > >
> > > > > This stems from IndexedRelationship.DirectRelationship:
> > > > > this.endRelationship = endNode.getSingleRelationship(
> > > > > SortedTree.RelTypes.KEY_VALUE, Direction.INCOMING );
> > > > >
> > > > > So if the end node has more than one incoming KEY_VALUE relationship
> > a
> > > > more
> > > > > than one relationship exception is thrown.
> > > > >
> > > > > Instead of the getSingleRelationship I was planning on iterating over
> > the
> > > > > relationships and matching the UUID stored at the root end of the IR
> > with
> > > > > one of the KEY_VALUE relationships (which is why using a unique 

Re: [Neo4j] Issues with IndexedRelationship

2011-09-08 Thread Niels Hoogeveen

Excellent... I did a code review and think this is a huge improvement over what 
we had.
Peter, can you pull these changes, I no longer have the privs to do so.
Niels

> Date: Thu, 8 Sep 2011 17:24:44 +1200
> From: bryc...@gmail.com
> To: user@lists.neo4j.org
> Subject: Re: [Neo4j] Issues with IndexedRelationship
> 
> I have made the changes in regards to SortedTree in regards to relationships
> vs nodes, and have got all the tests passing.  The changes are pushed up to
> my github account (and pull request has been raised).
> 
> The changes can be seen here:
> https://github.com/brycenz/graph-collections
> 
> On Thu, Sep 8, 2011 at 3:41 PM, Bryce  wrote:
> 
> > Another thought if there is going to be a larger refactor of the code is
> > whether the indexing mechanism should be broken out as a strategy for the
> > IndexedRelationship.  At present it is tied to SortedTree, but if an
> > interface was extracted out that had addNode, removeNode, iterator, and
> > isUniqueIndex then other indexing implementations could be used in certain
> > cases.
> >
> > The particular other implementation I am currently thinking of that could
> > be of use to me would be a paged linked list.  So that would have a linked
> > list of pages, each with min < x < max KEY_VALUE (or equivalent)
> > relationships.  I think that could work quite well for the situation where
> > the index is descending date ordered, and generally just appended at the
> > most recent end, and results are retrieved in a paged manner generally from
> > near the most recent.
> >
> > But more to the point there could be any number of implementations that
> > would be good for given different situations.
> >
> > That does bring up a question though, there was some discussion a while ago
> > about some functionality along the lines of IndexedRelationship being pulled
> > into the core, so is that overkill for now if there is going to be another
> > core offering later?
> >
> >
> > On Thu, Sep 8, 2011 at 2:38 PM, Niels Hoogeveen  > > wrote:
> >
> >>
> >> I think we don't have to worry about backwards compatibility much yet.
> >> There has not been a formal release of the component, so if there are 
> >> people
> >> using the software, they will accept that they are bleeding edgers.
> >> Indeed addNode should return the KEY_VALUE relationship and I think we
> >> should change the signature of SortedTree to turn it into
> >> Iterable. No need to maintain a Node iterator, the node is
> >> always one getEndNode away.
> >> Niels
> >>
> >> > Date: Thu, 8 Sep 2011 14:17:59 +1200
> >> > From: bryc...@gmail.com
> >> > To: user@lists.neo4j.org
> >> > Subject: Re: [Neo4j] Issues with IndexedRelationship
> >> >
> >> > Will have to experiment with changing my id's to be stored as longs, it
> >> does
> >> > make perfect sense really that it would be better.  Thanks for the hint.
> >> >
> >> > In regards to SortedTree returning the KEY_VALUE relationship instead of
> >> the
> >> > end Node, I had thought of that too, and it would definitely help.
> >>  Could
> >> > end up being a significant change to SortedTree though, e.g.:
> >> >   sortedTree.addNode( node );
> >> > Would need to return the KEY_VALUE relationship instead of a boolean.
> >>  Which
> >> > not knowing where else SortedTree is used could be a large change?
> >> >
> >> > Maybe SortedTree would have two iterator's available a key_value
> >> > relationship iterator, and a node iterator.  Having a quick look at it
> >> now
> >> > it seems that it could work ok that way without introducing much code
> >> > duplication.
> >> >
> >> > On Thu, Sep 8, 2011 at 12:46 PM, Niels Hoogeveen
> >> > wrote:
> >> >
> >> > >
> >> > > Two longs is certainly cheaper than a string. Two longs take 128 bit
> >> and
> >> > > are stored in the main record of the PropertyContainer, while a String
> >> would
> >> > > require a 64 bit "pointer" in the main record of the
> >> PropertyContainer, and
> >> > > an additional read in the String store where the string representation
> >> will
> >> > > take up 256 bits. So both memory-wise, as perfomance wise, it is
> >> better to
> >> > > store a UUID as two long values.
> >> > >
> >> > >
> >> > > The main issue is something that needs a deeper fix than adding ID's.
> >> > > SortedTree now returns Nodes when traversing the tree. We should
> >> however
> >> > > return the KEY_VALUE Relationship to the indexed Node. Then
> >> > > IndexedRelationship.DirectRelationship can be created with that
> >> relationship
> >> > > as an argument. We get the Direction and the RelationshipType for
> >> free.
> >> > > Niels
> >> > >
> >> > > > Date: Thu, 8 Sep 2011 11:36:11 +1200
> >> > > > From: bryc...@gmail.com
> >> > > > To: user@lists.neo4j.org
> >> > > > Subject: Re: [Neo4j] Issues with IndexedRelationship
> >> > > >
> >> > > > Hi Niels,
> >> > > >
> >> > > > Sorry I didn't quite write the bit about (1) clearly enough.  The
> >> problem
> >> > > is
> >> > > > that it presently throws an Exception where 

Re: [Neo4j] Querying a full text index

2011-09-08 Thread Romiko Derbynew
Remember that the default match is 0.5 e.g director~0.5 hence why it matches up 
to two letter differences e.g ditectof, directors etc

Sent from my iPhone

On 08/09/2011, at 5:10 AM, "Yaniv Ben Yosef"  wrote:

> Hi Axel,
> 
> I've read the syntax, which is why I was surprised. There are wildcard
> options in the syntax, e.g.: test* and test? and even te*st.
> So I would expect that [director*] should return director and directory.
> [director], if I understand the syntax correctly, should return just
> director.
> But actually, it also returns director and directory in my code.
> This means that [director] is equivalent to [director*], which I find a bit
> strange.
> 
> In your example - the query ["director"] also returns both director and
> directory.
> The only thing that works is [+director].
> 
> Thing is, I don't want to force my users to remember advanced syntax and
> append a + to each word. And I also don't want to start parsing queries.
> I imagine that the syntax in the Lucene documentation should work (i.e.,
> [director] *should not* be equivalent to [director*]. It's either a bug
> somewhere, or I'm not configuring/using something correctly.
> Anyone has an idea?
> 
> Thanks again,
> 
> --- Yaniv
> 
> 
> 
> On Wed, Sep 7, 2011 at 8:31 PM, Axel Morgner  wrote:
> 
>> Hi Yaniv,
>> 
>> didn't try your case, just read the code. If I remember correctly, it may
>> help to expand your search term "director john" into a Lucene query, e.g.
>> something like "\"director\" OR \"john\"".
>> 
>> The complete Lucene query syntax see [1].
>> 
>> Greetings
>> 
>> Axel
>> 
>> [1] http://lucene.apache.org/java/3_1_0/queryparsersyntax.html
>> 
>> Am 07.09.2011 um 12:16 schrieb Yaniv Ben Yosef:
>> 
>>> Hi,
>>> 
>>> This question may be Lucene related, but since I'm using it via Neo4J I'm
>>> asking here first. I'm using Neo4J 1.4 M06.
>>> I have a graph representing people, with a few properties about each
>> person
>>> (e.g., their name and job title).
>>> Now I'd like to create a search form that will allow the user to enter
>>> either the person's first name, last name, title, or any combination. For
>>> example, the query [john director] should result with all the people
>> whose
>>> name or title contain both john and director.
>>> To play with that, I created this little psvm:
>>> 
>>> public class FullTextIndexTest
>>> {
>>>   public static void main(String[] args)
>>>   {
>>>   GraphDatabaseService graphDb =
>>> GraphDatabaseServiceFactory.createGraphDatabase("target/var/db");
>>> 
>>>   Transaction t = graphDb.beginTx();
>>>   Node n1 = graphDb.createNode();
>>>   n1.setProperty("name", "John Smith");
>>>   n1.setProperty("title", "Directory Manager");
>>> 
>>>   Node n2 = graphDb.createNode();
>>>   n2.setProperty("name", "Johnny Malkovich");
>>>   n2.setProperty("title", "Director of R&D");
>>> 
>>>   Node n3 = graphDb.createNode();
>>>   n3.setProperty("name", "John Horovich");
>>>   n3.setProperty("title", "Sr. Director");
>>> 
>>>   IndexManager index = graphDb.index();
>>>   Index fulltextPerson = index.forNodes("person-fulltext",
>>>   MapUtil.stringMap(IndexManager.PROVIDER, "lucene", "type",
>>> "fulltext"));
>>>   fulltextPerson.add(n1, "combined", n1.getProperty("name") + " " +
>>> n1.getProperty("title"));
>>>   fulltextPerson.add(n2, "combined", n2.getProperty("name") + " " +
>>> n2.getProperty("title"));
>>>   fulltextPerson.add(n3, "combined", n3.getProperty("name") + " " +
>>> n3.getProperty("title"));
>>>   t.success();
>>>   t.finish();
>>> 
>>>   // search in the fulltext index
>>>   IndexHits hits = fulltextPerson.query("combined", "director
>>> john");
>>>   System.out.printf("Found %d results:\n", hits.size());
>>>   for (Node node : hits)
>>>   {
>>>   System.out.println(node.getProperty("name") + ", " +
>>> node.getProperty("title"));
>>>   }
>>>   }
>>> }
>>> 
>>> 
>>> I expected this program to return 1 result: John Horovich, Sr. Director
>>> Instead, I'm getting 3:
>>> 
>>> John Horovich, Sr. Director
>>> John Smith, Directory Manager
>>> Johnny Malkovich, Director of R&D
>>> 
>>> It seems that Lucene will "accept" terms that contain a query term (e.g,
>>> Directory and Johnny) even if I'm not using any wildcards in my query.
>> How
>>> do I turn this behavior off? I'd like the results to contain only people
>>> whose name or title *contain* the word john, but not johnny.
>>> 
>>> Thanks!
>>> --- Yaniv
>>> ___
>>> 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] Aggregate queries

2011-09-08 Thread Marko Rodriguez
Hi,

Thanks James. Here is how I would do it -- groupCount is not needed.

g.idx(index_name)[[key:value]].both.loop(1){it.loops < depth}.count()

Note: Be wary of this query. Make sure the branch factor of your graph is 
sufficiently small or the depth to which you are exploring is sufficiently 
small. With a large branch and depth, you can easily touch everything in your 
graph if your graph has "natural statistics." ( 
http://en.wikipedia.org/wiki/Scale-free_network )

Also, if you want to get fancy, what I like to do, is unroll my loops to 
increase performance. Given that the "while" construct of your loop step is 
simply "< depth," you can append an appropriate number of .both steps.

traversal = g.idx(index_name)[[key:value]];
for(i in 0..depth) { 
traversal = traversal.both; 
}
traversal.count();

Finally, 'both' is for undirected traversals. Use 'out' for outgoing traversals 
(follow the direction of the arrows) and 'in' for incoming traversals.
https://github.com/tinkerpop/gremlin/wiki/Gremlin-Steps

HTH,
Marko.

http://markorodriguez.com

> 
> Xavier Shay wrote:
>> 
>> "For all nodes in a particular index, how many other nodes are they
>> connected to at depth X?"
>> 
> 
> Marko will be able to improve upon this, but try something like this (this
> is untested)...
> 
> m = [:]
> depth = 10
> index_name = "vertices"
> index_key = "name"
> index_nodes = g.idx(index_name).get(index_key,Neo4jTokens.QUERY_HEADER +
> "*").
> index_nodes._().both.groupCount(m).loop(2){it.loops < depth}
> m.size()
> 
> - James
> 
> 
> --
> View this message in context: 
> http://neo4j-community-discussions.438527.n3.nabble.com/Neo4j-Aggregate-queries-tp3317720p3317876.html
> Sent from the Neo4j Community Discussions mailing list archive at Nabble.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] possible to query spatial indexes from gremlin?

2011-09-08 Thread Peter Neubauer
Boris,
you are seeing the expected results through REST but not through the
Webadmin with this query? That sounds like a bug then.

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 Wed, Sep 7, 2011 at 5:26 PM, Boris Kizelshteyn  wrote:
> Hi Peter,
>
> still no joy, I run the following query:
>
> g.idx('UsersWorld').get('bbox','[-71.070231297681, 42.351920260159,
> -71.091167203206, 42.375030765981]').count()
>
> but get no results, when I run the same query through the rest plugin I get
> the expected results. I see the index is registered as spatial in the index
> view. I'm, not sure what else to try.
>
> Any help would be appreciated!
>
>
> On Wed, Sep 7, 2011 at 8:21 AM, Peter Neubauer <
> peter.neuba...@neotechnology.com> wrote:
>
>> Boris,
>> here is finally a working example of a Gremlin index search in Neo4j
>> Spatial, see
>>
>> https://github.com/neo4j/spatial/blob/master/src/test/java/org/neo4j/gis/spatial/IndexProviderTest.java#L132
>>
>> Let us know if this helps!
>>
>> 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 Mon, Aug 22, 2011 at 3:27 PM, Peter Neubauer <
>> peter.neuba...@neotechnology.com> wrote:
>>
>> > Boris,
>> > the name of the index is the name of the corresponding Layer you want
>> > to work with, so you should do something like
>> >
>> >  http> POST /db/data/index/node/
>> >
>> >
>> {"name":"a72952a1-0969-4fae-87ce-ff404a7b8a3e_world","config":{"provider":"spatial"}}
>> >
>> > in order to get one of your existing layers. otherwise, a new layer
>> > will be created for you, which is not what you want right? I don't
>> > know which layers have data in them ... let me know if that works.
>> >
>> > 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, Aug 18, 2011 at 5:03 PM, Boris Kizelshteyn 
>> > wrote:
>> > > Hi Peter,
>> > >
>> > > I'm finally trying this query out, but not getting any results. Do I
>> need
>> > to
>> > > rebuild neo4j-spatial? I sent the index command successfully:
>> > >
>> > >
>> > >   -
>> > >   http> POST /db/data/index/node/ {"name":"UsersWorld",
>> > > "config":{"provider":"spatial"}}
>> > >   - ==> 201 Created
>> > >   - ==> {
>> > >   - ==>   "template" : "
>> > >
>> >
>> http://reach.media.mit.edu:7474/db/data/index/node/UsersWorld/{key}/{value}
>> > >   ",
>> > >   - ==>   "provider" : "spatial"
>> > >   - ==> }
>> > >
>> > >
>> > > But when I query, I get nothing (same query from the plugin produces
>> > > results):
>> > >
>> > >
>> >
>> g.idx('UsersWorld').get('bbox','[-71.33467375967257,42.26157716735279,-70.83994567129366,42.45920025563372]')
>> > >
>> > > Thanks!
>> > >
>> > >
>> > > On Mon, Aug 8, 2011 at 6:49 PM, Peter Neubauer <
>> > > peter.neuba...@neotechnology.com> wrote:
>> > >
>> > >> You are to surf and have fun.
>> > >>
>> > >> pushed g.idx('test').get('bbox','[15.0, 16.0, 56.0, 61.0]')
>> > >>
>> > >> 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 Tue, Aug 9, 2011 at 12:36 AM, Marko Rodriguez <
>> okramma...@gmail.com>
>> > >> wrote:
>> > >> > Hey,
>> > >> >
>> > >> > :).
>> > >> >
>> > >> > You can do:
>> > >> >
>> > >> >        g.idx('test')[['bbox','[15.0, 16.0, 56.0, 61.0]']]
>> > >> >
>> > >> > See ya,
>> > >> > Marko.
>> > >> >
>> > >> > http://markorodriguez.com
>> > >> >
>> > >> > On Aug 8, 2011, at 4:27 PM, Peter Neu

Re: [Neo4j] how Neo4j work for sorting chinese character?

2011-09-08 Thread Peter Neubauer
Thanks Yuanlong,
we will look at it as soon as we got some time!

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, Sep 8, 2011 at 2:38 AM, iamyuanlong  wrote:
> I added here : https://github.com/neo4j/community/issues/14
>
>
> --
> View this message in context: 
> http://neo4j-community-discussions.438527.n3.nabble.com/Neo4j-how-Neo4j-work-for-sorting-chinese-character-tp3309754p3318317.html
> Sent from the Neo4j Community Discussions mailing list archive at Nabble.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] Size on disk, and number of properties

2011-09-08 Thread Chris Gioran
Hi Assem

The logical log file is where all changes to be performed to the store
are written out before they are actually applied - also referred to as
the Write Ahead Log. The file that hosts this is bound to a specific
size above which a rotation happens: a new file is created to host the
WAL, all pending transactions are moved over, the store files are
flushed and the old file marked as unused.
Setting the configuration option "keep_logical_logs" to "false"
deletes the old log files instead of keeping them around when that
size limit is hit and a rotation is triggered.

Hope that clear things up.

cheers,
CG

On Wed, Sep 7, 2011 at 8:58 PM, Aseem Kishore  wrote:
> Thanks Johan!
>
> Configuring Neo4j with "keep_logical_logs=false" the logs will
>> automatically be deleted upon rotation.
>
>
> What does "upon rotation" mean here?
>
> Aseem
>
> On Wed, Sep 7, 2011 at 5:56 AM, Johan Svensson wrote:
>
>> Removing the log files ending with ".v" at runtime is
>> perfectly safe to do but will turn off the ability to do incremental
>> backups. You can however still perform live full backups.
>>
>> Configuring Neo4j with "keep_logical_logs=false" the logs will
>> automatically be deleted upon rotation.
>>
>> -Johan
>>
>> On Sat, Sep 3, 2011 at 1:49 AM, Aseem Kishore 
>> wrote:
>> > Thanks for the insights Johan!
>> >
>> > Regarding the existing disk space then, by far the bulk of it is from the
>> > logs. Is there a way to prune or garbage collect them? Is simply deleting
>> > the files safe? Should the db be off if I do that? Etc.
>> >
>> > Thanks much!
>> >
>> > Aseem
>> >
>> > On Tue, Aug 30, 2011 at 2:47 AM, Johan Svensson > >wrote:
>> >
>> >> Hi Aseem,
>> >>
>> >> This is actually expected behavior when performing file copy of
>> >> running db and starting up with default configuration. If you remove
>> >> the files ending with .id in the db directory on the local snapshot
>> >> and start up setting "rebuild_idgenerators_fast=false" you should see
>> >> the accurate amount of nodes, relationships and properties.
>> >>
>> >> Regarding the amount of properties not matching this could be due to a
>> >> non clean shutdown on the production system. We are planing on
>> >> improving this in the near future by allowing for more aggressive
>> >> reuse of ids for properties. This will specifically improve things for
>> >> workloads that perform a lot of property updates.
>> >>
>> >> -Johan
>> >>
>> >> On Tue, Aug 30, 2011 at 10:05 AM, Aseem Kishore <
>> aseem.kish...@gmail.com>
>> >> wrote:
>> >> > Hey guys,
>> >> >
>> >> > We do offline backups of our db on a semi-regular basis (every few
>> days),
>> >> > where we (1) stop the running db, (2) copy its data directory and (3)
>> >> > restart the db.
>> >> >
>> >> > A few times early on, we did running backups -- but not the proper
>> >> "online"
>> >> > way -- where we simply copied the data directory while the db was
>> still
>> >> > running. (We did this during times where we were confident no requests
>> >> were
>> >> > hitting the db.)
>> >> >
>> >> > We noticed that every time we did the running backup, the number of
>> >> > properties the web admin reported -- and the space on disk of the db
>> --
>> >> > would jump up quite a bit. We stopped doing that recently.
>> >> >
>> >> > But even now, both these numbers have gotten quite a bit higher than
>> we
>> >> > expect to, and strangely, they seem to differ highly between the
>> running
>> >> db
>> >> > and the copies.
>> >> >
>> >> > What could be causing all of this?
>> >> >
>> >> > Here are our current numbers:
>> >> >
>> >> > *Production*
>> >> > - 2,338 nodes
>> >> > - 4,473 rels
>> >> > - 114,231 props (higher than we would expect it to be, but not by an
>> >> order
>> >> > of magnitude)
>> >> > - *1.39 GB!* <-- this is way unexpected, particularly since our db
>> used
>> >> to
>> >> > be in the ~10 KB ballpark, and we certainly haven't experienced hockey
>> >> stick
>> >> > growth yet ;) The logical log only takes up 57 KB (0%) btw.
>> >> >
>> >> >
>> >> > *Local snapshot*
>> >> > - 2,338 nodes
>> >> > - 4,473 rels
>> >> > - *2,607,892 props!!!* <-- ???
>> >> > - *1.37 GB!* <-- equally surprisingly high, but also interesting that
>> >> it's
>> >> > less than the production db's size. 0 KB logical logs.
>> >> >
>> >> >
>> >> > I looked around the wiki and searched this mailing list but didn't
>> find
>> >> much
>> >> > clues here. But as requested on another thread, here's the output of
>> `ls
>> >> -lh
>> >> > data/graph.db/`:
>> >> >
>> >> > total 1474520
>> >> > -rw-r--r--   1 aseemk  staff    11B Aug 30 00:46 active_tx_log
>> >> > drwxr-xr-x  52 aseemk  staff   1.7K Aug 30 00:46 index/
>> >> > -rw-r--r--   1 aseemk  staff   343B Aug 30 00:46 index.db
>> >> > -rw-r--r--   1 aseemk  staff   854K Aug 30 00:46 messages.log
>> >> > -rw-r--r--   1 aseemk  staff    36B Aug 30 00:46 neostore
>> >> > -rw-r--r--   1 aseemk  staff     9B Aug 30 00:46 neostore.id
>> >> > -rw-r--r--   1 aseemk  staff    26K Aug 30 0