【问题标题】:How to store array with key value in typesense如何以typesense存储带有键值的数组
【发布时间】:2021-10-26 12:47:21
【问题描述】:

我是类型感的新手, 我在 typeense 中为 geoloc 创建了一个模式。

架构

curl "http://localhost:8108/collections" \
        -X POST \
        -H "Content-Type: application/json" \
        -H "X-TYPESENSE-API-KEY: xyz" \
        -d '{
              "name": "demo",
              "fields": [
                {"name": "name", "type": "string" },
                {"name": "city", "type": "string" },
                {"name": "country", "type": "string" },
                {"name": "iata_code", "type": "string" },
                {"name": "_geoloc", "type": "string[]" , "facet": true },
                {"name": "links_count", "type": "int32" },
                {"name": "objectID", "type": "string" }
              ]
            }'

我尝试存储

curl "http://localhost:8108/collections/airports4/documents/import" \
        -X POST \
        -H "Content-Type: application/json" \
        -H "X-TYPESENSE-API-KEY: xyz" \
        -d '
           {"name": "Kalemie","city": "Kalemie","country": "Congo (Kinshasa)","iata_code": "FMI","_geoloc": { "lat" : -5.875556 ,  "long" : 29.25 },"links_count":1,"objectID": "1040"}'

但它返回一个错误

{"code":400,"document":"{","error":"Bad JSON: [json.exception.parse_error.101] parse error at line 1, column 2: syntax error while parsing object key - unexpected end of input; expected string literal","success":false}
{"code":400,"document":"\t\"name\": \"Kalemie\",","error":"Bad JSON: [json.exception.parse_error.101] parse error at line 1, column 8: syntax error while parsing value - unexpected ':'; expected end of input","success":false}
{"code":400,"document":"\t\"city\": \"Kalemie\",","error":"Bad JSON: [json.exception.parse_error.101] parse error at line 1, column 8: syntax error while parsing value - unexpected ':'; expected end of input","success":false}
{"code":400,"document":"\t\"country\": \""Congo (Kinshasa)\",","error":"Bad JSON: [json.exception.parse_error.101] parse error at line 1, column 11: syntax error while parsing value - unexpected ':'; expected end of input","success":false}
{"code":400,"document":"\t\"iata_code\": \"FMI\",","error":"Bad JSON: [json.exception.parse_error.101] parse error at line 1, column 13: syntax error while parsing value - unexpected ':'; expected end of input","success":false}
{"code":400,"document":"\t\"_geoloc\" : [{\"lat\":-5.875556 , \"lng\": 29.25 }],","error":"Bad JSON: [json.exception.parse_error.101] parse error at line 1, column 12: syntax error while parsing value - unexpected ':'; expected end of input","success":false}
{"code":400,"document":"\t\"links_count\": 1,","error":"Bad JSON: [json.exception.parse_error.101] parse error at line 1, column 15: syntax error while parsing value - unexpected ':'; expected end of input","success":false}
{"code":400,"document":"\t\"objectID\": \"1040\"","error":"Bad JSON: [json.exception.parse_error.101] parse error at line 1, column 12: syntax error while parsing value - unexpected ':'; expected end of input","success":false}
{"code":400,"document":"}","error":"Bad JSON: [json.exception.parse_error.101] parse error at line 1, column 1: syntax error while parsing value - unexpected '}'; expected '[', '{', or a literal","success":false}

我不知道如何用 lat long 存储 _geoloc。

【问题讨论】:

    标签: json multidimensional-array instantsearch.js typesense


    【解决方案1】:

    您必须使用geopoint 类型的字段。

    这是文档中的一个示例:https://typesense.org/docs/0.21.0/api/documents.html#geosearch

    【讨论】:

    • 感谢您帮助@jeffreyveon。现在它可以正常工作了。
    猜你喜欢
    • 2018-07-31
    • 2020-08-19
    • 2011-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-07
    相关资源
    最近更新 更多