[size=medium][color=black][b]1 、什么是Faceted Search[/b][/color][/size]
Facet['fæsɪt]很难翻译,只能靠例子来理解了。Solr作者Yonik Seeley也给出更为直接的名字:导航(Guided Navigation)、参数化查询(Paramatic Search)。
[img]http://img0.tuicool.com/EVN7B3.png!web[/img]
上面是比较直接的Faceted Search例子,品牌、产品特征、卖家,均是 [color=black][b]Facet[/b][/color] 。而Apple、Lenovo等品牌,就是 [color=black][b]Facet values[/b][/color] 或者说 [color=black][b]Constraints[/b][/color] ,而Facet values所带的统计值就是[color=black][b] Facet count/Constraint count [/b][/color]。
[size=medium][color=black][b]2 、Facet 使用[/b][/color][/size]
[quote]q = 超级本
facet = true
facet.field = 产品特性
facet.field = 品牌
facet.field = 卖家[/quote]
[quote]http://…/select?q=超级本&facet=true&wt=json
&facet.field=品牌&facet.field=产品特性&facet.field=卖家[/quote]
也可以提交查询条件,设置fq(filter query)。
[quote]q = 电脑
facet = true
fq = 价格:[8000 TO *]
facet.mincount = 1 // fq将不符合的字段过滤后,会显示count为0
facet.field = 产品特性
facet.field = 品牌
facet.field = 卖家[/quote]
[quote]http://…/select?q=超级本&facet=true&wt=json
&fq=价格:[8000 TO *]&facet.mincount=1
&facet.field=品牌&facet.field=产品特性&facet.field=卖家[/quote]
[quote]"facet_counts": {
"facet_fields": {
"品牌": [
"Apple", 4,
"Lenovo", 39
…]
"产品特性": [
"显卡", 42,
"酷睿", 38
…]
…}}[/quote]
如果用户选择了Apple这个分类,查询条件中需要添加另外一个fq查询条件,并移除Apple所在的facet.field。
[quote]http://…/select?q=超级本&facet=true&wt=json
&fq=价格:[8000 TO *]&fq=品牌:Apple&facet.mincount=1
&facet.field= 品牌 &facet.field=产品特性&facet.field=卖家[/quote]
[size=medium][color=black][b]3 、Facet 参数[/b][/color][/size]
[quote]facet.prefix – 限制constaints的前缀
facet.mincount=0 – 限制constants count的最小返回值,默认为0
facet.sort=count – 排序的方式,根据count或者index
facet.offset=0 – 表示在当前排序情况下的偏移,可以做分页
facet.limit=100 – constraints返回的数目
facet.missing=false – 是否返回没有值的field
facet.date – Deprecated, use facet.range
facet.query[/quote]
指定一个查询字符串作为Facet Constraint
[quote]facet.query = rank:[* TO 20]
facet.query = rank:[21 TO *][/quote]
[quote]"facet_counts": {
"facet_fields": {
"品牌": [
"Apple", 4,
"Lenovo", 10
…]
"产品特性": [
"显卡", 11,
"酷睿", 20
…]
…}}[/quote]
参考:http://www.tuicool.com/articles/Iv2UjiU
Facet['fæsɪt]很难翻译,只能靠例子来理解了。Solr作者Yonik Seeley也给出更为直接的名字:导航(Guided Navigation)、参数化查询(Paramatic Search)。
[img]http://img0.tuicool.com/EVN7B3.png!web[/img]
上面是比较直接的Faceted Search例子,品牌、产品特征、卖家,均是 [color=black][b]Facet[/b][/color] 。而Apple、Lenovo等品牌,就是 [color=black][b]Facet values[/b][/color] 或者说 [color=black][b]Constraints[/b][/color] ,而Facet values所带的统计值就是[color=black][b] Facet count/Constraint count [/b][/color]。
[size=medium][color=black][b]2 、Facet 使用[/b][/color][/size]
[quote]q = 超级本
facet = true
facet.field = 产品特性
facet.field = 品牌
facet.field = 卖家[/quote]
[quote]http://…/select?q=超级本&facet=true&wt=json
&facet.field=品牌&facet.field=产品特性&facet.field=卖家[/quote]
也可以提交查询条件,设置fq(filter query)。
[quote]q = 电脑
facet = true
fq = 价格:[8000 TO *]
facet.mincount = 1 // fq将不符合的字段过滤后,会显示count为0
facet.field = 产品特性
facet.field = 品牌
facet.field = 卖家[/quote]
[quote]http://…/select?q=超级本&facet=true&wt=json
&fq=价格:[8000 TO *]&facet.mincount=1
&facet.field=品牌&facet.field=产品特性&facet.field=卖家[/quote]
[quote]"facet_counts": {
"facet_fields": {
"品牌": [
"Apple", 4,
"Lenovo", 39
…]
"产品特性": [
"显卡", 42,
"酷睿", 38
…]
…}}[/quote]
如果用户选择了Apple这个分类,查询条件中需要添加另外一个fq查询条件,并移除Apple所在的facet.field。
[quote]http://…/select?q=超级本&facet=true&wt=json
&fq=价格:[8000 TO *]&fq=品牌:Apple&facet.mincount=1
&facet.field= 品牌 &facet.field=产品特性&facet.field=卖家[/quote]
[size=medium][color=black][b]3 、Facet 参数[/b][/color][/size]
[quote]facet.prefix – 限制constaints的前缀
facet.mincount=0 – 限制constants count的最小返回值,默认为0
facet.sort=count – 排序的方式,根据count或者index
facet.offset=0 – 表示在当前排序情况下的偏移,可以做分页
facet.limit=100 – constraints返回的数目
facet.missing=false – 是否返回没有值的field
facet.date – Deprecated, use facet.range
facet.query[/quote]
指定一个查询字符串作为Facet Constraint
[quote]facet.query = rank:[* TO 20]
facet.query = rank:[21 TO *][/quote]
[quote]"facet_counts": {
"facet_fields": {
"品牌": [
"Apple", 4,
"Lenovo", 10
…]
"产品特性": [
"显卡", 11,
"酷睿", 20
…]
…}}[/quote]
参考:http://www.tuicool.com/articles/Iv2UjiU
本文介绍了FacetedSearch的概念及其在Solr中的应用。通过实例展示了如何配置查询参数来获取多维度的搜索结果,包括如何筛选、排序及限制返回的Facet值。

被折叠的 条评论
为什么被折叠?



