-1
私はOrientDb 2.1.13を使用します。OrientDbはリンクされたクラスのluceneエンジンでクエリを実行します
私は、次のデータベース構造
Area extends V
---------------------------
Field Type
---------------------------
names LinkMap to AreaName
AreaName extends V
---------------------------
Field Type
---------------------------
language String
name String (with a Lucene Index on this field)
を持っていると私は、次の値
Area
------------------------------
@rid names
------------------------------
#12:6025 {"en":"#13:6025"}
AreaName
------------------------------
@rid language name
------------------------------
#12:6025 en Africa
を持って、私は次のクエリを使用して、エリアからデータを抽出しようとしましたが、何も抽出されません。
1) select from Area where names.en.name lucene 'Africa*'
代わり私は
2) select from Area where names.en.name = 'Africa'
(=代わりLUCENEを使用して)データを抽出することができる次のクエリを使用して、このクエリを使用して(そうで直接使用される場合のLuceneエンジンはうまく動作):
3) select from Area where names.en in
(select from AreaName where name lucene 'Africa*')
luceneでインデックスされたフィールドを持つリンクされたクラスを照会する正しい方法は何ですか。私の質問は次のとおりです:
質問1)がうまくいかないバグはありますか?
別の構文を使用する必要がありますか?
または、3)のようにサブクエリを使用する以外の方法はありませんか?このクエリ
select from Area where names.en.name lucene 'Africa*'
で
にこれだけLUCENEまたはインデックスのいずれかの種類のために有効であるようにあなたは、サブクエリを使用しなければならないことと思いますか? –
任意の種類のインデックスに対して有効です –