I understand that itâs good practice to have well-planned graph modeling, but since you can do all the other valid combinations of indexes, why is it not possible to do exact/hash + term, though? e.g. You can do all of âtermâ, âfulltextâ and âtrigamâ using the Ratel interface, but canât do an âexactâ or âhashâ one when âtermâ is selected. For that, you need to go into bulk edit.
Given that itâs possible, though, and 4 indexes are used for some predicates in the play.dgraph.io Freebase example, it does seem odd to me that you canât do it using the expected interface route.
This seems like either an odd decision, or a minor bug/oversight to me.
Thatâs not a bug. It is a recommendation hard typed on the UI.
I donât know exactly what was the reason but it was introduced here
In my view adding several indexes is weird, it also increases space on the disk. e.g: exact and hash has the same effect, why you need to be redundant? If you need term, it should work just fine as exact. You can also have these terms spread over other predicates.
I agree with you about exact and hash, since they are redundant, but thatâs not the issue here. Itâs exact+term, which according to the documentation are not redundant. This is stated in tutorial-3:
Also, thereâs the full list of string indices for their respective functions here.
You can verify this on the Freebase data on play.dgraph.io with predicate ânameâ, which has four indexes: