マルチコア SOLR セットアップがあり、各コアには異なるスキーマがあります。
ビデオ コア インデックス ビデオ メタデータ エンティティ コア インデックス ビデオ タイトル/説明から抽出されたエンティティのメタデータ Vemap (ビデオ エンティティ マッピング) コアには、エンティティとビデオ間のマッピングが含まれます。
ユーザーが入力したクエリ (例: 「米国大統領」) の場合、動画のメタデータに直接一致する結果を取得するか、メタデータがクエリに一致するエンティティを含む動画を取得する必要があります。
次のクエリは、結果を正しく返します。
http://<>/solr/video/select?q={!join from=id to=id fromIndex=vemap}{!join from=entityID to=entityID fromIndex=entity}etext:"president of the united states" OR "president of the united states"&wt=json&indent=true
ただし、OR クエリの順序を単純に変更する以下のクエリ (A OR B ではなく B OR A) は、構文エラーをスローします。
http://<>/solr/video/select?q=(president of the united states) OR {!join from=id to=id fromIndex=vemap}{!join from=entityID to=entityID fromIndex=entity}etext:"president of the united states"&wt=json&indent=true
エラーメッセージは言う
"error":{
"msg":"org.apache.solr.search.SyntaxError: Cannot parse 'etext:\"president': Lexical error at line 1, column 17. Encountered: <EOF> after : \"\\\"president\"",
"code":400}}
2 つのクエリは、OR クエリの順序のみが異なりますが、そのうちの 1 つだけが結果を返し、もう 1 つは構文エラーをスローします。ここで何か不足していますか?
期待される結果を得るためにクエリを作成するより良い方法はありますか?