0

我正在为我的用户节点创建一个名为“用户”的索引,其中键是“电子邮件”(以用户电子邮件作为值)。

到目前为止一切顺利 - 我可以通过电子邮件轻松获得用户。

我的用户节点还将用户名(user_name)作为属性保存,我正在尝试以某种方式查询数据库,以便判断是否使用了“电子邮件”或“用户名”。

当然,它们可以用于不同的节点。

我正在寻找一种密码查询或一种“按多个参数索引”的方法,以便我可以判断是否已使用电子邮件或用户名。

谢谢!

顺便说一下neo4j,使用node-neo4j从node.js调用它。

4

2 回答 2

1

您可以将自动索引配置为对两者都进行索引emailuser_name然后运行如下查询:

start n=node:node_auto_index("email:john@doe.com user_name:"John Doe"')
return n
于 2013-08-09T01:29:50.930 回答
-1

如果我们谈论 Lucene,您可以添加到索引文档,其中包含两个字段 - 用户名和电子邮件。您的代码可能是这样的(Java 中非常原始的示例,我认为 Node.js 应该具有类似的语法,当与 Lucene 一起工作时)

Document doc = new Document();
doc.add(new Field("userName", userName), Field.Store.YES,  Field.Index.ANALYZED);
doc.add(new Field("email", email, Field.Store.YES,  Field.Index.ANALYZED));

之后,轻松搜索这两个字段。

作为参考 - 看看 Lucene In Action ( http://www.manning.com/hatcher3/ ) 或 Internet 上的类似书籍。

于 2013-08-08T18:56:38.657 回答