使用 Solrj/Spring Data Solr 实现标记和排除过滤器 [英] Implementing Tagging and Excluding Filters with Solrj / Spring Data Solr

查看:18
本文介绍了使用 Solrj/Spring Data Solr 实现标记和排除过滤器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试在字段上使用多选实现 Solr Facet 搜索.以这个例子为例:http://docs.lucidworks.com/display/solr/Faceting#Faceting-LocalParametersforFaceting,我想生成这个对 solr 的调用:

I am trying to implement a Solr Facet search with multi-select on a field. To take this example: http://docs.lucidworks.com/display/solr/Faceting#Faceting-LocalParametersforFaceting, I would like to generate this call to solr:

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

我不知道如何使用 solrj (java) 调用它,因为我不想添加一个简单的文件,但我需要包含标记和排除(!tag=dt 和 !ex=dt).任何想法 Java 代码应该是什么样子?

I am not sure how to call this using solrj (java) as I don't want to add a simple filed but I need to include the tagging and excluding (!tag=dt and !ex=dt). Any ideas what the java code should look like?

我正在使用 Spring-Data-Solr,它似乎太基础了,无法进行这样的提前调用.所以我认为我需要降低一个级别并使用 solrj.任何一种解决方案都会很棒(solrj 或 spring-data-solr)

I am using Spring-Data-Solr which seems to be too basic to make such an advance call. So I think I need to go a level lower and use solrj. Either solution would be great (solrj or spring-data-solr)

推荐答案

以下块应该创建您想要的查询字符串.

The following block should create the querystring you want.

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

这篇关于使用 Solrj/Spring Data Solr 实现标记和排除过滤器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆