solr - 或者在 solr 中搜索

标签 solr

我有一种情况,我必须使用多个 OR 关键字在 Solr 中搜索文档。现在关键字的数量可能会达到 5000,这会导致具有 5000 个 OR 条件的非常大的查询。这导致 Solr 服务器挂起。有没有其他方法可以设计查询以工作。下面给出了查询的简短示例

tweet_id:337931022601699328 OR 337931064293081089 OR 337931089538584576 OR 337931098761871361 OR 337931138851016704 OR 337931143099854848 OR 337931160082591745 OR 337931163857453056 OR 337931230819516416 OR 337931239996665857 OR 337931287518126080 OR 337931322850951168 OR 337931325648535553 OR 337931331398934528 OR 337931413057830912 OR 337931442363441152 OR 337931448629731329 OR 337931453344129025 OR 337931465016877056 OR 337931482066726912 OR 337931514388029442 OR 337931533149155328 OR 337931645527130114 OR 337931704935256064 OR 337931784459268096 OR 337931845545103360 OR 337931889086185472 OR 337931892668108801 OR 337931963983855617 OR 337932154212319233 OR 337932176454721536 OR 337932193198374912 OR 337932229659459584 OR 337932437290090496 OR 337932436807749632 OR 337932436828725250 OR 337932437449474048 OR 337932448518250496 OR 337932458832035843 OR 337932458634915840 OR 337932458278387712 OR 337932474246119425 OR 337932476209041409 OR 337932477408620544 OR 337932480478842880 O R 337932478775959554 OR 337932480566931456 OR 337932478763376640 OR 337932481841999872 OR 337932479337992192 OR 337932479296045057 OR 337932479333797889 OR 337932484614434816 OR 337932484606038017 OR 337932482777317376 OR 337932484664758272 OR 337932482785718273 OR 337932484589273088 OR 337932487399444481 OR 337932489031032833 OR 337932489114923008 OR 337932486573166592 OR 337932490704560130 OR 337932489144270848 OR 337932488762601472 OR 337932492097069056 OR 337932497780355072 OR 337932498900230144 OR 337932499722321921 OR 337932514431729665 OR 337932561806409731 OR 337932567284154368 OR 337932567300935680 OR 337932574603214848 OR 337932571134533632 OR 337932574674518016 OR 337932575484026881 OR 337932578206121984 OR 337932582215892994 OR 337932586653454336 OR 337932584917024768 OR 337932592986865664 OR 337932597017587712 ....

我打算根据几个字段对结果进行分面。

最佳答案

我不确定这个解决方案是否对您有帮助,但尝试了一些方法来解决您的问题。

无论您向 Solr 提供什么查询,它都会首先将该查询解析为可理解的格式。然后 Solr 执行结果。 在向 Solr 查询之前,您必须进行一些计算。让我们采用以下场景来解决您的用例。

假设您总共有 5000 个 tweet_id。您必须对大约 4000 个 tweet_id 执行 OR 查询。在这种情况下,最好使用否定 AND 查询来查询其他 (5000-4000=1000) 1000 tweet_id。因此,您的查询将传递更少的值。

因此,尝试使用否定 AND 查询而不是 OR 查询来查询 tweet_id 的其余部分。

关于solr - 或者在 solr 中搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21926804/

相关文章:

java - 将 Solr xml 文件解析为 SolrInputDocument

apache - 如何使用 SolrJ 重新加载 Solr 核心?

java - hdfs + solr安装报错cannot create core collection1

solr - Solr fq 查询的串联

Cassandra TimeUUID 字段的 Solr 映射

android - RSolr::Error::Http - 400 错误请求 - 路径中缺少 solr 核心名称

performance - 我应该将 Solr 中存储字段的大小保持在最小吗?

java - 如何在 Apache Solr 中扁平化对象并应用于字段类型

solr - 使用 Jetty 运行 Solr

c# - 如何获取 url 响应(内容 : xml data) from solr search engine in asp.net