使用JSON请求API的嵌套Solr空间查询

z9ju0rcb  于 2022-11-05  发布在  Solr
关注(0)|答案(1)|浏览(199)

如何在Apache Solr中将嵌套查询与空间过滤器结合起来?这是一个简化的嵌套查询,应该与空间过滤器结合起来:

curl "http://localhost:8983/solr/corename/query" -d '{
  "query":{
    "bool":{
      "must":[
        "type:product",
        "product.siteid:(1.)",
      ]
    }
  }
}'

它不是这样工作的:

curl "http://localhost:8983/solr/corename/query" -d '{
  "query":{
    "bool":{
      "must":[
        "type:product",
        "product.siteid:(1.)",
        {
          "filter":"{!bbox sfield=index.supplierloc}",
          "pt":"52.5,10",
          "d":"115"
        }
      ]
    }
  }
}'

将空间过滤器与嵌套查询结合使用的正确查询语法是什么?
注意:原始查询更为复杂,筛选器不能与“query”处于同一级别,因为它需要成为一个“must”查询条件的一部分,但不能应用于另一个条件。

y1aodyip

y1aodyip1#

解决的办法是:

"bbox":{
    "sfield":"index.supplierloc",
    "pt":"52.5,10",
    "d":115
}

该文档描述了如何将查询字符串转换为JSON对象的示例:https://solr.apache.org/guide/8_0/json-query-dsl.html
最后,查询如下所示:

curl "http://localhost:8983/solr/aimeos/query" -d '{
  "query":{
    "bool":{
      "must":[{
        "bbox": {
          "sfield":"index.supplierloc",
          "pt":"52.5,10",
          "d":"115"
        }},
        "type:product",
        "product.siteid:(1.)"
      ]
    }
  }
}'

相关问题