/ / Solrj / Springデータによるタグ付けとフィルタの実装Solr-solr、solrj、spring-data-solr

タグ付けの実装とSolrj / Springデータによるフィルタの除外Solr-solr、solrj、spring-data-solr

私はフィールド上で複数選択を使ってSolrファセット検索を実装しようとしています。この例を取る: http://docs.lucidworks.com/display/solr/Faceting#Faceting-LocalParametersforFaceting私はsolrへのこの呼び出しを生成したいと思います:

q=mainquery&fq=status:public&fq={!tag=dt}doctype:pdf&facet=on&facet.field={!ex=dt}doctype

私はsolrj(java)を使ってこれをどのように呼び出すべきかわかりません単純なフィールドを追加する必要はありませんが、タグ付けと除外(!tag = dtと!ex = dt)を含める必要があります。

私はSpring-Data-Solrを使用しています。これはあまりにも基本的なもので、このような事前の呼び出しを行うことはできません。だから私はレベルを下げてsolrjを使う必要があると思う。どちらの解決策も素晴らしい(solrjまたはspring-data-solr)

回答:

回答№1の場合は3

次のブロックで、必要なクエリー文字列を作成する必要があります。

SimpleFacetQuery query = new SimpleFacetQuery(new SimpleStringCriteria("mainquery"))
.addFilterQuery(new SimpleQuery(new Criteria("status").is("public")))
.addFilterQuery(new SimpleQuery(new Criteria("{!tag=dt}doctype").is("pdf")));
query.setFacetOptions(new FacetOptions("{!ex=dt}doctype"));

solrTemplate.queryForFacetPage(query, YourBean.class);

回答№2については2

リンク 私がすることができます :-

ModifiableSolrParams params = new ModifiableSolrParams();
params.add("fq", "{!tag=dt}doctype:pdf");
params.add("facet.field", "{!ex=dt}doctype");