1

我的文档有一个名为“doc_id”的 id 字段,声明了以下属性:

<field name="doc_id" type="long" indexed="true" stored="true" required="true" />

这个 id 被标记为带有标签的唯一键。

我尝试一次加载许多文档,在请求 fe doc_id:(235, 163, 256, ..., 10473) 中给出它们的 ID

查询中的标识符计数永远不会超过 100。但是,存储中的文档越多,执行此查询所需的时间就越长。我认为这类似于 SQL 查询 fe "select doc where doc_id in (...)" 但在 "doc_id" 上使用索引时,执行时间应该是恒定的,不是吗?那么为什么在我添加越来越多的文档后 solandra 会变慢呢?

我正在使用 Solandra (Solr 3.4 + Cassandra 1.0.3)

问候,T

4

2 回答 2

2

使用RealTimeGet (Solr >= 4.0)。

http://localhost:8983/solr/get?ids=1,2
于 2014-03-06T14:58:31.417 回答
1

由于 id 是唯一的,因此不要搜索它。搜索性能总是会变慢。
尝试使用过滤器查询,例如fq=doc_id:235
这将允许 Solr使用过滤器缓存并为您提供大大提高的性能。

于 2011-12-12T13:30:38.693 回答