gpt4 book ai didi

c# - 混合 Lucene/MySQL 查询或概念

转载 作者:行者123 更新时间:2023-11-30 23:41:59 32 4
gpt4 key购买 nike

我们的项目需要近乎实时的搜索和不断更新。数据当前存储在 MySQL 数据库中,Lucene 索引会随着数据库的修改而更新。

我们目前拥有所需的搜索功能。但是,我们正在尝试添加在索引/数据库中“标记”文档的功能。由于数据 jar 可能有数百万条记录,我们不想更新用于标记的 Lucene 索引(或者如果有一种方法可以批量更新 Lucene 也可能有效)。相反,我们在 MySQL 中有一个文档 ID 表,我们希望使用它来确定标记集。

到目前为止,我发现的最佳选择是将两个 ID 列表检索为一个整数数组,对它们进行排序(因此我只需要循环一次),然后循环查找两者之间的匹配项(尽管这并不理想,因为我们可能会丢失排序)。

尝试在 MySQL 的“IN”查询中使用 Lucene ID 列表失败,因为文档数量可能达到数百万,而 MySQL 会阻塞它。

对我们如何优化或做到这一点有任何见解吗?

另一个建议是第二个索引并使用 MutliSearcher,但我不完全确定如何去做,因为在更新或删除标签集时仍然需要用可能的百万行更新索引。

最佳答案

对于您的“批量更新”,您不能根据时间戳或 MySql 表中的类似内容对 Lucene 索引执行增量更新吗?我是在 solr 中完成的,而不是直接在 Lucene 中完成的,但由于 Solr 是 Lucene 功能的包装器,这在本质上是相同的(或者我假设...)。

Solr Delta import command .

Relevant question, (perhaps).

关于c# - 混合 Lucene/MySQL 查询或概念,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2240213/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com