我正在开发一个将由10位用户使用的应用程序。 我将使用Lucene来获得更好的搜索性能。 我可以在服务器中生成Lucene索引文件,让10个应用程序共享相同的Lucene索引文件吗? 只有一个应用程序可以写入更新索引,而其他9个应用程序是只读的。
答案 0 :(得分:1)
是的,您可以读取来自不同应用程序的相同lucene索引。如果应用程序位于同一JVM上,您也可以共享相同的SELECT Name, Kills, rank
FROM (
SELECT Name, Kills,
@rank := IF (@k = Kills, @rank,
IF (@k:=Kills, @rank+1, @rank+1)) AS rank
FROM scores
CROSS JOIN (SELECT @k := 0, @rank := 0) AS vars
ORDER BY Kills DESC ) AS t
WHERE t.rank <= 5
,因为索引的打开/关闭成本非常高。
无论如何,你只能有一个IndexSearcher实例用于应用程序。
只有一个客户端 / 应用可以同时 ,因此您可以编写索引也来自不同的应用程序,但您必须同步索引管理操作:open / write / close。