How to combine Geo Based query with N1QL

I am wondering what the best approach would to get from a Couchbase db. all properties which meet a certain geo condition lets say within 1 mile of a long lat but then i also want to be able to filter based on under stuff like nbr of rooms, sqft or pool etc.
Is there any plans to be able to send geo based query’s via N1QL or will this always be a separate query ? As my user will be able to change his criteria of what he is looking for i am thinking it might be best if it is a 2 query process to first get all properties which fall within given radius, and then do a n1ql query and pass the properties ID’s as a IN clause in form of Array. So until user changes the Location or Range i don’t need to do another GEO query ?
So would this be the approach to take or am I off ?

FTS has better GEO search you can use FTS get document keys using FTS when location and use N1QL second part. Also there combined integration You searched for fts | The Couchbase Blog

cc @abhinav

@vsr1 's advise is a good approach to take here.

You’ll need to first set up a full-text search (FTS) index and you can try a few examples. Here’s documentation on Geo spatial queries that FTS will support … https://docs.couchbase.com/server/6.6/fts/fts-geospatial-queries.html

Now if you need to fetch all properties of the document, you could embed your FTS search request into a N1QL search function and do a SELECT * as documented here … https://docs.couchbase.com/server/6.6/n1ql/n1ql-language-reference/searchfun.html

Alternatively, you can directly achieve this with your FTS index - you will need to “store” all the fields (properties of the documents) and if you now set "fields": ["*"] within your FTS request, it would retrieve all “stored” document properties alongside document IDs.

Here’s documentation on how to set up your FTS indexes … https://docs.couchbase.com/server/6.6/fts/fts-creating-indexes.html

Thanks, i don’t think the fields [*} would be a good solution in my case as the the geo cordinates are inside a huge document which is the actual record as well as the historical changes for that doc over time. So it can be quite large and would take up a lot of space.
So based on the info provided what would be the most efficient way if i would like to search by properties based on geo and also want to limit that search by stuff like price, size, nbr of rooms etc ? is it more effective to use the FTS for all of that or is the combo of N1QL and FTS better and more flexible.
I am looking for a fast but still flexible way to build queries like in some cases there might be 1 additional condition like price lower or between where others will have additional query’s. I know that couchbase does not like the % wildcard usage because of the performance impact. But how does FTS behave with like % ?

Filtering documents using geo queries is definitely something that you want to push down to FTS. I’d definitely recommend pushing down any further filters down to FTS within the same SEARCH function as a conjunction/disjunction - textual or numeric. You’ll need to make sure all the necessary fields are included within the FTS index though.

FTS supports wildcard searches, so you should be able to push them down as a conjunction/disjunction as well. I’d make sure that my wildcard search isn’t too generic which could match several clauses.

FTS also has a max clause limit which is configurable. The default is at 1024, here’s how you can change it …

curl -XPUT -H "Content-type:application/json" 
http://<username>:<password>@<ip>:8094/api/managerOptions -d
'{"bleveMaxClauseCount": "10000"}' 

Here’s documentation on all kinds of FTS queries, which you will be able to place into the N1QL Search function …
https://docs.couchbase.com/server/6.6/fts/fts-query-types.html