索引多个参数?

时间:2013-08-08 18:32:21

标签: node.js lucene neo4j

我正在为我的用户节点创建一个名为'users'的索引,其中密钥为'email'(用户将电子邮件作为值)。

到目前为止一切都很好 - 我可以通过电子邮件轻松获取用户。

我的用户节点还将用户名(user_name)作为属性保存,我正在尝试以方式查询数据库,以便判断是否采用了'email'或'user_name'。

当然,它们可以在不同的节点中使用。

我正在寻找一个密码查询或“通过多个参数索引”的方法,以便我可以判断是否已经使用了email或user_name。

谢谢!

顺便说一句,我在谈论neo4j,使用node-neo4j从node.js调用它。

2 个答案:

答案 0 :(得分:1)

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

start n=node:node_auto_index("email:john@doe.com user_name:"John Doe"')
return n

答案 1 :(得分:-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/)或类似的书籍。