【问题标题】:Out of the box federated search using Lucene/Solr/ElasticSearch使用 Lucene/Solr/ElasticSearch 的开箱即用联合搜索
【发布时间】:2015-06-12 20:52:10
【问题描述】:

我有一个要求,当一个特定的查询被提交到搜索服务器时,我想搜索两个或多个搜索索引。有没有一种方法可以在使用 Lucene/ Solr/弹性搜索? 如果这是不可能的,我正在尝试在 API 级别上设置一些东西,其中搜索索引从搜索客户端中抽象出来,查询提交给 API 和引擎盖下的 API 将搜索与两个或多个搜索并行索引并组合结果并将其发送回?

这里的重点是,如果有这样的 API 框架可用,或者即使可以开箱即用地使用 Lucene/Solr/Elasticsearch 或只需安装插件并对其进行配置,我也不想重新发明轮子?

【问题讨论】:

    标签: solr elasticsearch lucene spring-data-elasticsearch federated


    【解决方案1】:

    您可以使用 elasticsearch 轻松做到这一点。 在搜索时,您可以以逗号分隔的格式提及索引名称,如下所示 -

    curl -XPOST 'http://localhost:9200/index-a,index-b,index-c/_search -d '{
      "query": {
        "match_all": {}
      }
    }'
    

    为方便起见,您也可以使用aliases。别名可以绑定到多个索引名称,您可以使用单个别名与所有这些索引进行对话

    【讨论】:

    • 我认为这将解决我正在寻找的问题。你怎么能建议任何基于配置的方法呢?我不想添加对要硬连线到应用程序的索引名称的依赖项,并且我应该能够随时随地动态添加/删除索引。有办法吗?
    • 我在回答中提到了别名。你可以用那个。您可以使用别名而不是索引名称,别名将解析为多个索引名称。因此,您可以从用户那里抽象出多个索引名称信息。
    猜你喜欢
    • 2011-07-16
    • 1970-01-01
    • 2011-02-06
    • 1970-01-01
    • 1970-01-01
    • 2012-09-05
    • 1970-01-01
    • 2010-11-26
    • 1970-01-01
    相关资源
    最近更新 更多