cinchapi / concourse

Distributed database warehouse for transactions, search and analytics across time.
http://concoursedb.com
Apache License 2.0
315 stars 235 forks source link

Support CCL search operators #511

Open jtnelson opened 4 months ago

jtnelson commented 4 months ago

Support https://github.com/cinchapi/ccl/pull/42

When search operators are included, query logic should leverage search() functions

jtnelson commented 4 months ago

To implement,

https://github.com/cinchapi/concourse/blob/19c4ae4b4c9858473436fdf0a14c1e1fdd207e6d/concourse-driver-java/src/main/java/com/cinchapi/concourse/thrift/TObject.java#L675: Add support for search operators

https://github.com/cinchapi/concourse/blob/19c4ae4b4c9858473436fdf0a14c1e1fdd207e6d/concourse-server/src/main/java/com/cinchapi/concourse/server/storage/db/Database.java#L536: Check if operator is a search operator and defer to the search call?

jtnelson commented 4 months ago

Need to have a fallback for timestamp queries with search operators. So, in the Database will need to support the search operators in the IndexRecord#findAndGet.

jtnelson commented 4 months ago

I think find is the only Store routine that calls into explore. If so, get rid of explore and just implement the logic in find directly. This will make it easy to call into the search method in the Database when trying to respond to a search operator

jtnelson commented 3 months ago

https://github.com/cinchapi/concourse/blob/develop/concourse-server/src/main/java/com/cinchapi/concourse/server/query/Finder.java#L129

An alternative is to add logic in Finder to check if the operator is a search operator and therefore defer to the engine search method. This will mean we can't support historical search

jtnelson commented 3 months ago

^^^ that won't work for navigation keys though