【发布时间】:2012-12-07 03:21:13
【问题描述】:
我使用 Solr (SolrCloud) 来索引和搜索我的推文。大约有 1600 万条推文,索引大小约为 3 GB。推文在出现时会被实时索引,以便启用实时搜索。目前我使用lowercase 字段类型作为我的推文正文字段。对于搜索中的单个搜索词,大约需要 7 秒,并且随着每个搜索词的添加,搜索所花费的时间线性增加。 3GB 是为 solr 进程分配的最大 RAM。示例 solr 搜索查询如下所示
tweet_body:*big* AND tweet_body:*data* AND tweet_tag:big_data
对提高搜索速度有什么建议吗?目前我只运行 1 个包含整个推文集合的分片。
【问题讨论】:
-
可能有多个经常使用的分片(可能是 tweet_tag),因为分片键可能会有所帮助。
-
我不认为这是一个碎片问题,因为我在另一个字段上进行搜索并且返回速度非常快。该字段是推文句柄,它会在 10 毫秒内返回。
-
同意,但是在分片时,您的索引大小会减小(因为它分布在多个分片上)并且可能会提高您的整体性能。或者,鉴于您的 RAM 有限,您的索引也会耗尽内存。尝试增加 RAM,因为整个索引可以驻留在 RAM 中以便更快地访问。
-
目前,我的 solr 进程的
Xmx超过了整个索引。 -
你对这个慢查询做过解释吗?那是在使用索引吗?
标签: java search solr information-retrieval solrcloud