我的系统在国家/地区名称上有大量的构面值。所以这些国家可以是美国,美国,加拿大等国。
现在我希望facets可以自定义排序。默认情况下,solr支持基于计数的排序或字母排序。但是我不想以这种方式排序。我想要一个自定义的排序,这样美国的变化彗星排在顶部,然后是欧洲,然后是亚洲等等。
为此,我编写了一个tokenizer,它读取文本文件并生成像这样的标记
0001_usa
0002_united州
所以基本上我的排序顺序前缀,然后按字母顺序排序。然后我在UI上显示时删除前缀。到目前为止它的效果很好。现在由于方面的数量巨大,我还想要一个带有自动建议的搜索功能。因此,例如,如果用户键入" u"我应该能够显示所有以" u"开头的国家/地区。在前面的类型。我之前使用的是facet.prefix但是在我的自定义令牌之后它不起作用,因为我将000x加到令牌前面。另外facet.prefix似乎不支持通配符。那么我该如何实现这种类型呢?在Solr中支持自定义排序的任何其他方法。我不希望得到客户端上的所有数据,因为它很庞大。
请帮忙
答案 0 :(得分:0)
您可以通过使用自动提示的右侧处理程序在其他字段中索引国家/地区名称来轻松实现此目的。
您可以使用 country_sort 之类的内容,例如之前(001_usa,0002_united state)和 country_autosugest 字段,其中放置了普通值(美国,美国)。
然后查询country_autosugest并对country_sort进行排序。这样你也可以返回country_autosuggest的值,不需要在显示时处理字符串。