SOLR:不同语言同时搜索

发布于 2024-12-12 18:31:27 字数 631 浏览 1 评论 0原文

我有一个 Solr 实例,它从数据库获取有关公司的数据并为其建立索引。关于单个公司的数据库数据可以以多种语言提供(例如英语和俄语)。当然,所有公司都有一个unikue key,它也是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 的不同语言数据是通过不同的过程获取的。并且该值刚刚被重写。

I have a Solr instance that gets and indexes data about companies from DB. A DB data about a single company can be provided in several languages(english and russian for example).All the companies, of course, have a unikue key that is a uniqueKey in solr index too. I need to present solr search in all the languages at once.

How can it be performed?
1. Multicore? I've build two seperate cores with each language data, but i can't search in two indexes simultaneously.

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

or

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

gives no results. while searching in each core is succesful.

  1. Enable Name field(for example) as a multivalued is not a solution, because a different language data data from DB are get by different procedures. And the value is just rewritten.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

乖乖公主 2024-12-19 18:31:27

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

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

将是一个示例

I'm not sure about the multicore piece, but have you considered creating two fields in a single core - one for each language? You could then combine with an "OR" which is the default, so a query for:

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

would be an example

青萝楚歌 2024-12-19 18:31:27

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

Sounds like you are possibly using the DataImportHandler to load your data. You can implement @Mike Sokolov's answer or implement the multivalued solution via the use of a Solr client. You would need to write some custom code in a client like SolrJ (or one of the other clients listed on IntegratingSolr in the Solr Wiki) to pull both languages in separate queries from your database and then parse the data from both results into a common data/result set that can be transformed into a single Solr document.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文