我需要使用Lucene.NET在mysql数据库上进行全文搜索。我必须使用InnoDB,因此Lucene是我选择的搜索提供商。
有两个字段需要编入索引,它们是varchar(200)和varchar(2000)。但问题是,一旦插入记录,就应该可以对记录进行全文搜索。所以我必须同时将记录插入到lucene索引和db中。
这样做是否可行以及单次插入需要多长时间?这是一个Web应用程序,我希望每秒500次插入。
如果您已经这样做,请告诉我您的技巧。如果这不可行,我唯一的选择是返回SQLServer以使用其全文搜索。 :(
P.S。
我并不担心数据库插入性能。但我不知道的是Lucene将更新索引的时间。
答案 0 :(得分:1)
Lucene.Net或SQLServer,除非你找到一个聪明的方法,否则你每天有43,400,000个docs出现问题。
答案 1 :(得分:1)
是的,使用Lucene的NearRealtimeSearch功能是可行的。
http://wiki.apache.org/lucene-java/NearRealtimeSearch
但是,如果要保持良好的搜索性能,那么在提交时需要巧妙地管理索引优化/合并。
答案 2 :(得分:0)
这里有一些指导原则:
您应该使用不同的索引策略获得概念验证,并对其进行压力测试以找出最适合的策略。