2013-06-03 9 views
3

필드에서 다중 선택을 사용하여 Solr Facet 검색을 구현하려고합니다. 이 예제를 이용하려면 : http://docs.lucidworks.com/display/solr/Faceting#Faceting-LocalParametersforFaceting을, 나는 SOLR이 전화를 생성하고 싶습니다 :Solrj/Spring 데이터 Solr을 사용하여 태그 지정 및 필터 구현

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

나는 간단한이 제출 한 추가하지 않는 한 solrj (자바)를 사용하여이 작업을 호출하는 방법을 잘 모르겠습니다하지만 태그를 포함하고 exclude (! tag = dt 및! ex = dt)를 포함해야합니다. 자바 코드는 어떤 모양이어야합니까?

나는 스프링 - 데이터 - 솔라를 사용하고 있는데, 그렇게 진보 된 전화를 걸기에는 너무 기본적인 것처럼 보인다. 그래서 저는 레벨을 낮추고 solrj를 사용해야한다고 생각합니다.

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

답변

3

다음 블록 당신이 원하는 쿼리 문자열 생성해야합니다 -이 : 어느 솔루션은 큰 (solrj 또는 스프링 데이터 SOLR) 나는이 작업을 수행 할 수 있습니다 link

2

이 될 것입니다.

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);