-
Notifications
You must be signed in to change notification settings - Fork 3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Feature]: Support geolocation datatype #27576
Comments
do you consider support postgis data types? |
Would love to work on this issue. Can you assign me? |
/assign @SasikaSankalana |
I would like to work on this issue, and I have signed up for OSPP 2024 in china. |
/assign @lizzy-0323 |
Hey, I would like to work on this as well. I went through the docs and I have a general idea of how to approach this. I think I may take some help from Elasticsearch solution to this and implement something like that. |
/assign @Dbhardwaj99 |
welcome. |
Ok, where are all the datatype defined in this project? |
Hi @xiaofan-luan |
geoloation data typs is usually a pair [33.3, 76.9] that point to a location. We need to add this datatype and support filter on it. then might add some index on it and support more functions |
Can I know release goal of this issue? |
Is there any use case for this? We are targeting on delivering this at Milvus 3.0 |
But there definitely seems to be a lot to do before it's release |
When is milvus 3.0 expected to be released? |
early next year |
…#35990) issue:#27576 # Main Goals 1. Create and describe collections with geospatial fields, enabling both client and server to recognize and process geo fields. 2. Insert geospatial data as payload values in the insert binlog, and print the values for verification. 3. Load segments containing geospatial data into memory. 4. Ensure query outputs can display geospatial data. 5. Support filtering on GIS functions for geospatial columns. # Solution 1. **Add Type**: Modify the Milvus core by adding a Geospatial type in both the C++ and Go code layers, defining the Geospatial data structure and the corresponding interfaces. 2. **Dependency Libraries**: Introduce necessary geospatial data processing libraries. In the C++ source code, use Conan package management to include the GDAL library. In the Go source code, add the go-geom library to the go.mod file. 3. **Protocol Interface**: Revise the Milvus protocol to provide mechanisms for Geospatial message serialization and deserialization. 4. **Data Pipeline**: Facilitate interaction between the client and proxy using the WKT format for geospatial data. The proxy will convert all data into WKB format for downstream processing, providing column data interfaces, segment encapsulation, segment loading, payload writing, and cache block management. 5. **Query Operators**: Implement simple display and support for filter queries. Initially, focus on filtering based on spatial relationships for a single column of geospatial literal values, providing parsing and execution for query expressions. 6. **Client Modification**: Enable the client to handle user input for geospatial data and facilitate end-to-end testing.Check the modification in pymilvus. --------- Signed-off-by: tasty-gumi <[email protected]>
issue:#27576 Signed-off-by: zhenshan.cao <[email protected]>
Is there an existing issue for this?
Is your feature request related to a problem? Please describe.
Under certain search and recommendation scenario, geolocation query is very common.
Say:
find most relevant items in this city.
find recommended friend in less than 10 miles.
The geolocation data looks like
"location" : {
"lat" : 40.12,
"lon" : -71.34
},
more details can be found at https://www.elastic.co/cn/blog/geo-location-and-search
Describe the solution you'd like.
No response
Describe an alternate solution.
No response
Anything else? (Additional Context)
No response
The text was updated successfully, but these errors were encountered: