GitHub user PragmaTwice closed the discussion with a comment: Question about 
FT.SEARCH indices

Sorry for the late reply.

Could you provide some real data and queries? From the description alone, it's 
hard to fully understand what queries you're running and what your data looks 
like.

As things stand, for the three fields `d TAG, s NUMERIC, e NUMERIC` -- if you 
haven't declared `NOINDEX`, Kvrocks Search will create three separate indexes, 
one for each field. The index selection algorithm then tries to pick the most 
suitable one.

There are two shortcomings in the current implementation:
- First, the cost model for index selection is static -- it doesn't account for 
the actual distribution of your data, which can lead to suboptimal index 
choices. I've considered letting users provide hints for better selection, but 
haven't had time to implement that yet. 
- Second, composite indexes are not yet supported. If your query is something 
like `WHERE d == .. AND s == ..`, a composite index would make it extremely 
fast, instead of the current approach of filtering through one index and then 
scanning.

You can use `FT.EXPLAINSQL` to see what the current query plan looks like.

GitHub link: 
https://github.com/apache/kvrocks/discussions/3391#discussioncomment-16186587

----
This is an automatically sent email for [email protected].
To unsubscribe, please send an email to: [email protected]

Reply via email to