SOLR:以不同语言同时搜索

时间:2011-10-29 15:27:09

标签: search solr multicore multilingual

我有一个Solr实例,可以从DB获取和索引有关公司的数据。关于单个公司的DB数据可以用几种语言提供(例如英语和俄语)。当然,所有公司都有一个unikue键,它也是solr索引中的uniqueKey。我需要立即用所有语言进行solr搜索。

怎么做? 1.多核?我用每种语言数据构建了两个单独的核心,但我无法同时搜索两个索引。

localhost:8983/solr/core0/select?shards=localhost:8983/solr/core0/,localhost:8983/solr/core1/&indent=true&q=*:*&distributed=true

localhost:8983/solr/core0/select?shards=localhost:8983/solr/core0/,localhost:8983/solr/core1/&indent=true&id:123456

没有结果。在每个核心搜索都是成功的。

  1. 启用名称字段(例如),因为多值不是解决方案,因为来自DB的不同语言数据数据是通过不同的过程获得的。价值只是重写了。

2 个答案:

答案 0 :(得分:0)

我不确定多核作品,但您是否考虑过在一个核心中创建两个字段 - 每种语言一个?然后,您可以与默认的“OR”组合,因此查询:

en:"query test here" OR ru:"query test here"

将是一个例子

答案 1 :(得分:0)

听起来您可能正在使用DataImportHandler来加载数据。您可以通过使用Solr客户端实现@Mike Sokolov的答案或实现多值解决方案。您需要在像SolrJ这样的客户端(或Solr Wiki中IntegratingSolr上列出的其他客户端之一)中编写一些自定义代码,以便从数据库中的单独查询中提取这两种语言,然后解析两个结果中的数据都可以转换为可以转换为单个Solr文档的公共数据/结果集。