我正在使用Solr为我们的电子商务应用程序提供分面功能。它已按标准方式实施,如https://wiki.apache.org/solr/SimpleFacetParameters#Tagging_and_excluding_Filters
所述在应用程序方面,我们使用Solr返回的facet来提供UI上的过滤体验,并使用facets作为params构建URL。然后使用这些参数将fq的刻面参数进一步传递给Solr。
这很有效,除了我们的URL区分大小写,因为当我们更改为小的情况时,facet查询不再起作用并且给我们未定义的字段错误。
我们如何为Faceting设置不区分大小写的Solr查询,但仍保留用于显示构面的结果的大小写?
答案 0 :(得分:1)
首先:您收到有关未定义字段的错误似乎很奇怪。您可能不应该让最终用户在不验证字段的情况下指定使用的字段,而不是允许过滤或分割的字段。
第二:使用一个字段生成构面,使用一个场进行过滤。没有任何内容表明您必须使用相同的字段来呈现构面并在fq
中使用。
您可以使用包含KeywordTokenizer和LowercaseFilter的字段进行过滤,然后使用<copyField>
将用于分面的字段中的内容复制到小写字段进行过滤。