在弹性搜索中使用正则表达式查询的地理距离查询
Geo distance query with regex query in elastic search
我想用一个关键字进行查询,并在查询的关键字内仅显示我周围 150 公里的帖子 我下面的查询有效但显示了所有帖子
{
"query": {
"regexp": {
"title": {
"value": ".*h.*",
"flags": "ALL",
"max_determinized_states": 10000,
"rewrite": "constant_score"
}
}
},
"sort": [{
"date": {
"order": "desc"
}
}]
}
但是当我像下面这样添加过滤器查询时,我收到了解析错误
"filter": {
"geo_distance": {
"distance": "150km",
"location": {
"lat": \(latitude),
"lon": \(longitude)
}
}
}
谁能帮忙
这是您应该使用的查询,它使用 bool/filter
查询结合了 regexp
查询和 geo_distance
查询:
{
"query": {
"bool": {
"filter": [
{
"geo_distance": {
"distance": "150km",
"location": {
"lat": \(latitude),
"lon": \(longitude)
}
}
},
{
"regexp": {
"title": {
"value": ".*h.*",
"flags": "ALL",
"max_determinized_states": 10000,
"rewrite": "constant_score"
}
}
}
]
}
},
"sort": [
{
"date": {
"order": "desc"
}
}
]
}
我想用一个关键字进行查询,并在查询的关键字内仅显示我周围 150 公里的帖子 我下面的查询有效但显示了所有帖子
{
"query": {
"regexp": {
"title": {
"value": ".*h.*",
"flags": "ALL",
"max_determinized_states": 10000,
"rewrite": "constant_score"
}
}
},
"sort": [{
"date": {
"order": "desc"
}
}]
}
但是当我像下面这样添加过滤器查询时,我收到了解析错误
"filter": {
"geo_distance": {
"distance": "150km",
"location": {
"lat": \(latitude),
"lon": \(longitude)
}
}
}
谁能帮忙
这是您应该使用的查询,它使用 bool/filter
查询结合了 regexp
查询和 geo_distance
查询:
{
"query": {
"bool": {
"filter": [
{
"geo_distance": {
"distance": "150km",
"location": {
"lat": \(latitude),
"lon": \(longitude)
}
}
},
{
"regexp": {
"title": {
"value": ".*h.*",
"flags": "ALL",
"max_determinized_states": 10000,
"rewrite": "constant_score"
}
}
}
]
}
},
"sort": [
{
"date": {
"order": "desc"
}
}
]
}