我正在使用 Orient DB 2.1.16 。我在orientDB中有一个名为 person 的顶点类,我还为person类创建了一个名为 name 的属性。我在该属性上添加了一个名为 person.name 的全文索引。在索引上搜索我只能按键排序,有没有其他方法可以搜索索引 INDEX:person.name 但是按年龄 SELECT FROM INDEX:person.name WHERE KEY CONTAINSTEXT 'abc' ORDER BY KEY ASC
之类的其他属性的订单工作正常,但SELECT FROM INDEX:person.name WHERE KEY CONTAINSTEXT 'abc' ORDER BY age ASC
给出错误,说明从索引中选择时只能按键排序
答案 0 :(得分:0)
从索引中选择的结果将不包含未编入索引的属性。如果您想按不属于索引的字段进行排序,则还需要选择相关字段。
E.g:
SELECT name, age FROM (SELECT EXPAND(rid) FROM INDEX:person.name WHERE
KEY CONTAINSTEXT 'abc') ORDER BY age ASC
更简单的解决方案是使用 ContainsText 运算符从原始顶点查询属性:
SELECT name, age from person WHERE (name CONTAINSTEXT 'abc') ORDER BY age ASC