将Lucene索引与Document一起使用

时间:2016-02-24 09:49:31

标签: lucene orientdb

我需要存储结构化文档,我需要能够找到它们搜索属性。

例如:

CREATE CLASS testDocument
INSERT INTO testDocument (my_prop) values ({"name": "James", "age": 23})
INSERT INTO testDocument (my_prop) values ({"name": "John", "age": 51, "tatoos": ["dragon", "jellyfish", "baloon"]})

从那里我可以直接检索数据,例如:

SELECT my_prop.tatoos[0] FROM testDocument WHERE my_prop.age=51

但我无法搜索整个对象。有没有办法在文件中的任何地方找到“龙”这个词? 我试图添加LUCENE索引但没有成功。如果我需要定义它,这种属性(结构化文档)的类型是什么?

由于 劳伦

2 个答案:

答案 0 :(得分:0)

你可以用这个

SELECT my_prop.name FROM testDocument WHERE my_prop.tatoos contains "dragon"

答案 1 :(得分:0)

如果您需要定义此类属性的类型,可以使用embeddedlist for tatoos

CREATE CLASS testDocument

create property testDocument.name String 
create property testDocument.age Integer
create property testDocument.tatoos Embeddedlist String

INSERT INTO testDocument content {"name": "James", "age": 23}
INSERT INTO testDocument content {"name": "John", "age": 51, "tatoos": ["dragon", "jellyfish", "baloon"]}

enter image description here

您可以使用此查询

SELECT FROM testDocument where age=51 and tatoos contains "dragon"

enter image description here

<强>更新

您可以使用此查询

select from testDocument where my_prop.toJSON('fetchPlan:*:-1').indexOf("dragon") > -1

enter image description here