solrj API を使用して、SOLR 3.6 インデックスをクエリしています。複数のテキスト フィールドがあり、異なる重み付けをしたいと考えています。私が読んだことから、dismax または edismax クエリ タイプを使用してこれを実行できるはずです。私は次のことを試しました:
SolrQuery query = new SolrQuery();
query.setQuery( "title:apples oranges content:apples oranges");
query.setQueryType("edismax");
query.set("qf", "title^10.0 content^1.0");
QueryResponse rsp = m_Server.query( query );
しかし、これはうまくいきません。クエリの種類を設定するために次のバリエーションを試しましたが、違いはないようです。
query.setQueryType("dismax");
query.set("qt","dismax");
query.set("type","edismax");
query.set("qt","edismax");
query.set("type","dismax");
完全な Lucene クエリ構文を保持したいので、DisMax より ExtendedDisMax を好みます。(以下に示すように) クエリ内の個々の用語をブーストすることは機能しますが、クエリは自動的に生成され、構文が任意に複雑になる可能性があるため、有効なソリューションではありません。
query.setQuery( "title:apples^10.0 oranges^10.0 content:apples oranges");
どんな助けでも大歓迎です。