OrientDB:如何搜索手动lucene索引中的指定字段?

OrientDB:如何搜索手动lucene索引中的指定字段?,lucene,orientdb,Lucene,Orientdb,我正在使用OrientDB2.1.8社区和内置的Lucene索引。如何定义在手动索引中搜索时要使用的字段?即,以文档第页所述的方式使用手动索引 下面是一个简短的例子来说明我正在尝试做什么 CREATE VERTEX CONTENT {"name": "squirrel"} // rid = #9:2 CREATE VERTEX CONTENT {"name": "scrat", "description": "Scrat was an acorn-obsessed saber-toothed

我正在使用OrientDB2.1.8社区和内置的Lucene索引。如何定义在手动索引中搜索时要使用的字段?即,以文档第页所述的方式使用手动索引

下面是一个简短的例子来说明我正在尝试做什么

CREATE VERTEX CONTENT {"name": "squirrel"}
  // rid = #9:2
CREATE VERTEX CONTENT {"name": "scrat", "description": "Scrat was an acorn-obsessed saber-toothed squirrel"}
  // rid = #9:3

CREATE INDEX manual FULLTEXT ENGINE LUCENE STRING,STRING
INSERT INTO INDEX:manual (key,rid) VALUES ('squirrel', #9:2)
INSERT INTO INDEX:manual (key,rid) VALUES (['scrat', 'scrat was an acorn-obsessed saber-toothed squirrel'], #9:3)
现在查询SELECTRID FROM INDEX:manual,其中键LUCENE“squirrel”将返回9:2和9:3

我应该如何更改键的类型和/或插入索引命令,以便能够定义要使用的字段?例如,像SELECTRID FROM INDEX:manual这样的查询,其中键LUCENE'name:squirrel'应该只返回9:2,而不是9:3

有什么想法吗?

我试过创建索引手册全文引擎LUCENE STRING,字符串元数据{analyzer:org.apache.LUCENE.analysis.core.KeywordAnalyzer},它可以工作

CREATE VERTEX CONTENT {"name": "squirrel"}

CREATE VERTEX CONTENT {"name": "scrat", "description": "Scrat was an acorn-obsessed saber-toothed squirrel"}

create index manual FULLTEXT ENGINE LUCENE STRING,STRING METADATA {"analyzer":"org.apache.lucene.analysis.core.KeywordAnalyzer"} 

INSERT INTO INDEX:manual (key,rid) VALUES ('squirrel', #9:0)

INSERT INTO INDEX:manual (key,rid) VALUES (['scrat', 'scrat was an acorn-obsessed saber-toothed squirrel'], #9:1)

为什么要使用手动索引?键应该是位置键。您应该能够使用类似于k0,k1的约定在查询中使用。@wolf4ood:我正在尝试对所有顶点的所有字符串属性进行全文搜索,尽管这可能看起来很奇怪。我不知道顶点可能具有哪些属性,因此无法在模式中定义属性并在其上创建自动索引。作为一种可能的解决方法,我创建了手动索引,并在类V上使用动态挂钩来更新它。在我的例子中,我可以同时搜索所有字段,但如果需要,不能只定义一个字段进行搜索。@wolf4ood:也许这是一个太奇怪的用例,或者有更好的解决方案,但是与Solr或ElasticSearch等外部解决方案相比,使用内置工具更方便,如果可能的话,那就太好了。修正了,谢谢你,但这不是我的意思。。。我需要用例:在所有顶点上进行全文搜索,以及仅按指定字段在所有顶点上进行搜索。这更像是提到的搜索引擎。