【发布时间】:2017-09-22 13:57:12
【问题描述】:
我有两张表,一张是新闻,一张是联系人。
新闻:newsid、news_content、news_orgid
联系人:contactid,contact_orgid
我在 solr 中索引了这两个表,所以我有两个核心。 但我有一个用例,我需要通过 news_content 找出所有的联系方式。 我首先从新闻索引中获得了大量的 orgid,大约 100 万。我想用它作为 solr 中的过滤查询来搜索,比如
选择?q=:&fq=id:100+id:101+id:102+id:103+id:104
但 solr 限制为 1024 个布尔查询。所以我不能在一个过程中转移。还有其他方法可以解决这个问题吗?
因为要使用solr的facet数据,所以无法搜索solr中的所有数据并与ids进行比较。
感谢您的帮助!
最好的问候!瑞克。
【问题讨论】:
-
您可以在配置中更改最大布尔查询值,但一百万太多了!!!!!!
-
感谢您的回复,杰延德拉。如果我更改最大布尔查询值,可能会导致致命的性能问题。正如你所说,100 万太多了,可能 solr 无法处理这种问题。
-
是的,100 万太多了。用例是什么???您仍然可以分批进行,但这需要时间。
-
是的,用例是这样的,我有两个核心,一个是新闻,另一个是人,每个新闻和人都有一个器官ID。我想设计一个高级搜索,按人员工作级别和新闻内容过滤。所以我首先搜索新闻并获得大量器官ID,然后我需要将这些ID放入人员搜索中。 PS:我采纳了你的建议,将最大布尔查询值改为10K,大约需要2s。
标签: solr filter facet large-data