2017-04-11 10 views
0

私はオリエントDB 2.1.16を使用しています。私はという人物と呼ばれるorientDBの頂点クラスを持っています。という名前の人物クラスのプロパティも作成しました。です。私はフルテキストインデックスを追加しました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は、キーインデックスの中から選択するときにキーの代わりに他のプロパティで並べ替えるOrientDB

答えて

0

によってインデックスのみ注文することができますから、索引付けされていないプロパティが含まれませんインデックスから選択した結果を選択する際に言ってエラーになります。インデックスの一部ではないフィールドで注文する場合は、関連するフィールドも選択する必要があります。

SELECT name, age from person WHERE (name CONTAINSTEXT 'abc') ORDER BY age ASC 

例えば:

SELECT name, age FROM (SELECT EXPAND(rid) FROM INDEX:person.name WHERE 
KEY CONTAINSTEXT 'abc') ORDER BY age ASC 

より簡単な解決策は、ContainsTextオペレータと元の頂点のプロパティを照会することです

関連する問題