我们的项目需要近实时搜索和不断更新。数据当前存储在MySQL数据库中,Lucene索引随着数据库的修改而更新。混合Lucene/MySQL查询或概念
我们目前在我们想要的地方有搜索功能。但是,我们正在尝试添加“标记”文件到索引/数据库中的功能。由于数据源可能是数百万条记录,因此我们不想更新Lucene索引以进行标记(或者是否有方法可以对Lucene进行大规模更新)。我们在MySQL中有一个文档ID表,我们希望用它来确定标签集。
到目前为止,我发现的最好的选择是将ID列表作为整数数组进行检索,对它们进行排序(因此我只需要循环一次),然后遍历并查找两者之间的匹配(尽管这是不理想的,因为我们可能会失去排序)。
尝试在MySQL中的“IN”查询中使用Lucene ID列表失败,因为文档数量可能在数百万个以及MySQL扼流器上。
深入了解我们如何优化或做到这一点?
另一个建议是使用MutliSearcher的第二个索引,但我不完全确定如何去做,因为在更新或删除标记集时,仍然需要更新索引,可能有100万行。