我正在开发一个基本上是事件管理类应用程序的应用程序。用户可以发布不同类型的事件。事件可以是短暂的注意事件,例如用户在接下来的2小时内举办生日派对,或预先计划好的事件,如马拉松等(这只是一个虚拟的例子)。 现在要求的是,其他用户在搜索自由文本搜索时,他们将能够获得两种结果。搜索将更像是LinkedIn搜索,除了事件之外还有其他类别。
我在考虑使用ElasticSearch或Solr。但它们都是基于lucene的搜索引擎。当我将这些搜索引擎实时写入大量数据时,数据将被写入缓存,然后定期刷新到不同段的磁盘。 为了优化搜索性能,基于lucene的引擎尝试使用分段过程来共同定位数据。在频繁写入的情况下,这些过程变得频繁,并且这将消耗大量资源,并且最终将降低搜索性能。 https://www.elastic.co/guide/en/elasticsearch/guide/current/indexing-performance.html
有没有什么方法可以实现实时自由文本搜索而不会在分割中花费太多性能。请建议最适合此场景的任何建筑设计