将SOLR fq迁移到Elasticsearch

时间:2014-11-28 09:29:42

标签: solr elasticsearch

我目前正在将一个SOLR应用程序迁移到Elasticsearch并且已经陷入某个特定查询。 ElasticSearch文档对于如何实现我想要的结果非常模糊。 目前我正在尝试将标记的“fq”(过滤查询)从SOLR转换为Elasticsearch。我需要能够根据我的查询和过滤器从Elasticsearch facets(现在称为聚合)返回,但还要显示搜索中其他选项的聚合

虽然这听起来很复杂,但只需添加“fq”参数并按如下方式标记过滤器即可在SOLR中实现:

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

从主要的SOLR帮助文档中,这将过滤“doctype:pdf”,但也包括facet输出中其他doc类型的计数 - 再次这对我来说很好,我只是想在Elasticsearch中重新创建它。

到目前为止,我已经尝试了一个“post_filter”来完成这项工作,直到我希望应用不止一个过滤器(再次SOLR处理没有任何问题)。您可以在以下位置查看有关其工作原理以及我希望如何实现的示例:

https://www.jobsinhealthcare.co.uk/search?latitude=&longitude=&title=&location=&radius=5&type=&salary=0&frequency=year&since=&jobtype=&keywords=&company=&sort=Most+recent&filter[contract_type_estr][33d5667c]=Temporary&filter[job_type_estr][5d370027]=Part+time&filter[job_type_estr][4b45bd05]=Full+time

在结果右侧的过滤器/方面中,您可以选择多个“合同类型”和/或“作业类型”和/或“位置”,并仍然显示未选择的查询/过滤器的构面计数。请注意,每小时工资,年薪和添加日期没有此功能 - 这是设计使然。

关于我应该如何构建查询的任何指示都会受到极大的反响。

1 个答案:

答案 0 :(得分:0)