我知道SOLR可以进行自由文本搜索但是在SOLR文本字段中常见术语的最佳实践是什么?
例如,我们有一大块文字(一个属性的描述),其中包含有用的文字,如“私人车库”,“私人花园”,“私人停车场”,“地下停车场”,“硬木”地板','两层',......还有几十个这样的。
我想创建一个视图,让用户可以看到每个条款的属性数量,并允许用户深入查看相关属性。
一个明显的解决方案是预处理数据,解析文本,并使用布尔值yes / no值为每个关键短语创建构面。
我希望自动化这个,所以我想SOLR自由文本搜索引擎可能允许这个吗?例如我可以使用自由文本搜索引擎删除停用词并收集常用短语的计数,然后我们可以向用户显示这些词吗?
如果预处理是唯一的方法,那么这个或任何执行此功能的开源库是否有通用/最佳实践方法?
从SOLR中的文本字段计算和分组常用短语的最佳做法是什么?
答案 0 :(得分:2)
问题在于,使用某些自定义分析链对文本字段(非字符串字段)进行分面是相当昂贵的。您可以尝试使用带状疱疹,即将您的输入分解为一系列重叠的二元组。如果要使用solr4,请确保在文本字段定义中具有docValues = true。这可能会加快或至少为你节省RAM。
使用ShingleFilterFactory可以实现双重编程:http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters#solr.ShingleFilterFactory
请注意它仍然是计算密集型的。
如果您的数据集不是太大(取决于单独的定义)或者您可以适当地对数据进行分片,这可能会有效。