1

我想在一个特定的领域分面。该字段定义为

<field name="specials_de" type="textgen" indexed="true" stored="true" multiValued="true"/>

specials_de 中的两个值是“Cunard Hamburg Specials”和“Cunard the New Yorker”。我想将这两个值用作构面,但是 solr 查询返回的构面字段的值如下

<int name="cunard">11</int>
<int name="new">9</int>
<int name="yorker">9</int>
<int name="hamburg">5</int>
<int name="hamburgspecialscunard">3</int>
<int name="hamburgspecials">2</int>

我究竟做错了什么?

澄清一下:我不是指计数(11、9 等),而是指名称,即“cunard”、“new”等。

4

1 回答 1

2

不建议将文本字段用于 Faceting。您不会获得所需的行为,因为文本字段将被标记和过滤,从而导致生成多个标记,您可以从作为响应返回的方面看到这些标记。

SolrFaceting概述:-

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

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

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

于 2013-05-22T09:32:21.157 回答