下面是我在solr 中的文档
[{"url": "/buy/1/", "items": ["i_123", "i_1234", "i_12345", "i_12346"]}, {"url": "/buy/2/", "items": ["i_123", "i_1234", "i_12346"]}, {"url": "/buy/3/","items": ["i_123", "i_12346"]}, {"url": "/buy/4/","items": ["i_123", "i_234", "i_2345"]}]
我的查询是fq=items:(i_123 i_1234 i_12345)
,那么结果页面应该给出与查询项相匹配的项计数。
结果应该有一个额外的字段matching_items_count
[{"url": "/buy/1/""items": ["i_123", "i_1234", "i_12345", "i_12346"],"matching_items_count" : 3}, {"url": "/buy/2/","items": ["i_123", "i_1234", "i_1234444"],"matching_items_count" : 2}, {"url": "/buy/3/","items": ["i_123", "i_12346"],"matching_items_count" : 1}, { "url": "/buy/4/","items": ["i_123", "i_234", "i_2345"],"matching_items_count" : 1}]
在这种情况下,可以使用Function查询来获取计数。
在Filed列表(fl(中,除了url和项目字段外,您还可以编写-
url,items,count:sum(termfreq(items,"i_123"),termfreq(items,"i_1234"),termfreq(items,"i_12345"))