Lucene ElasticSearch方面:我如何做到这一点?
我有一个ElasticSearch索引,它包含了数百万种产品和一千多个品牌 我必须使用什么查询才能获得索引中所有品牌的列表 产品输入示例:Lucene ElasticSearch方面:我如何做到这一点?,lucene,elasticsearch,faceted-search,Lucene,elasticsearch,Faceted Search,我有一个ElasticSearch索引,它包含了数百万种产品和一千多个品牌 我必须使用什么查询才能获得索引中所有品牌的列表 产品输入示例: { _index: main _type: one _id: LA37dcdc7D70QygoV4KjfRU0hqUDhPs= _version: 4 _score: 1 _source: { pid: S2dcdcd528950_C243 mid: 6540 u
{
_index: main
_type: one
_id: LA37dcdc7D70QygoV4KjfRU0hqUDhPs=
_version: 4
_score: 1
_source: {
pid: S2dcdcd528950_C243
mid: 6540
url: http://being.successfultogether.co.uk/
price: 4
currency: GBP
brand: Reebok
store: Matalan
}
}
以下是根据文档中的选定字段生成方面的示例-
curl -XPUT <host>:9200/indices/type/_search?
{
"query": {
"match": {
"store": "Matalan"
}
},
"facets": {
"brand": {
"terms": {
"field": "brand"
}
}
}
}'
curl-XPUT:9200/索引/类型/\u搜索?
{
“查询”:{
“匹配”:{
“商店”:“Matalan”
}
},
“方面”:{
“品牌”:{
“条款”:{
“字段”:“品牌”
}
}
}
}'
我认为“所有术语”方面将获得字段的每个术语:
POST /_all/_search
{
"query" : {
"match_all" : { }
},
"facets" : {
"tag" : {
"terms" : {
"field" : "stub",
"all_terms" : true
}
}
}
}
术语聚合,如下面的ES 1.0样式所示,具有非常高的大小计数,可能会返回每个术语及其计数,这不是有效的,也不能肯定会得到所有术语
您可以在此处阅读有关聚合/分面的大小和分片大小参数的更多信息:此外,还有刻面插件,可以将字段的每个术语作为列表获取,请参见此处:
POST /_all/_search
{
"aggs" : {
"genders" : {
"terms" : {
"field" : "stub",
"size":1000
}
}
},
"size":0
}