Performance 用另一个ID替换ID会降低Solr中的性能吗?

Performance 用另一个ID替换ID会降低Solr中的性能吗?,performance,solr,indexing,unique-key,Performance,Solr,Indexing,Unique Key,我正在使用Solr 4.10.2。我已经建立了索引的文档。在Schema.xml中,我删除了ID字段,并将其替换为ngram字段,并将ngram字段设置为唯一键 我有一个问题-我什么时候对Solr进行搜索查询。搜索的性能是否有害?而且它还会影响D文档缓存 不,我认为这不会影响Solr的性能。当您将自己的字段定义为uniqueKey时,它将根据给定的键对文档进行索引。我在我的一个项目中使用了相同的方法,我们使用documentId作为唯一键。使用ngram字段作为唯一键是一个非常糟糕的主意。唯一密

我正在使用Solr 4.10.2。我已经建立了索引的文档。在Schema.xml中,我删除了ID字段,并将其替换为ngram字段,并将ngram字段设置为唯一键


我有一个问题-我什么时候对Solr进行搜索查询。搜索性能是否有害?而且它还会影响D文档缓存

不,我认为这不会影响Solr的性能。当您将自己的字段定义为uniqueKey时,它将根据给定的键对文档进行索引。我在我的一个项目中使用了相同的方法,我们使用documentId作为唯一键。

使用ngram字段作为唯一键是一个非常糟糕的主意。唯一密钥字段不得为“标记化”类型,否则多个单独的标记组成一个密钥,这将导致误报匹配。只能将字符串或int/long字段类型用作唯一键的类型


当然,性能也会受到一定影响,因为ngram字段会创建许多令牌,而不是一个令牌,但与其他问题(如误报和重复文档)相比,这一点可以忽略不计。

Ok。你肯定。你索引了多少数据?检索你搜索的文档需要多少时间?我已经索引了6K个文档,每个文档包含400个字段。检索查询通常取决于您的查询。如果你搜索所有的索引数据,那就需要几毫秒。我已经索引了10万个文档,每个文档只有2个字段。当我第一次在索引数据中搜索一个单词时,大约需要2秒钟。下一次,当我搜索同一个查询时,需要毫秒,因为那个时候,文档被保存在缓存中。这就是为什么。你们有并没有使用任何技术来搜索查询?我并没有使用ngram字段。ngram只是字段的名称,其字段类型为string。你用错误的方法研究这个问题。那么,告诉我它会降低性能吗?不,使用任何其他字符串字段都无所谓。无论uniqueKey字段是什么,性能都是一样的。非常抱歉
@Shalin
。实际上,我的ngram字段不是字符串类型。我已经定义了我自己的fieldType=“textSpell”,它包含两行代码。现在,请告诉我这会降低性能吗?