4

我们正在向我们的 solr 文档集中添加一个 facet 字段,该字段定义它属于哪个组 - 数据来自 mysql,我可以选择将整数 id (mysql pk) 放入 solr 的 facet 值中,或者放入短名称(mysql varchar(32)) 在构面值中。

使用短名称有一些吸引力,因为我们可以从用户输入(短名称将是 url 的一部分)直接转到 solr 查询,而无需访问 mysql 来查找 pk。

但是,在我走这条路之前,我想知道从性能的角度来看,字符串字段的分面是否与整数值的分面有很大不同。

4

1 回答 1

3

不要将文本字段用于 Faceting。你不会得到想要的行为。

SolrFaceting概述:-

由于分面字段通常被指定用于两个目的,即人类可读的文本和向下钻取查询值,因此它们的索引通常与用于搜索和排序的字段不同:

  1. 它们通常不会被标记为单独的单词
  2. 它们通常不会映射成小写
  3. 通常不会删除人类可读的标点符号(双引号除外)
  4. 通常不需要存储它们,因为存储的值看起来很像索引值,并且分面机制用于值检索。

尝试使用字符串字段,它会足够好,没有任何开销。

于 2012-08-24T06:57:30.707 回答