Using sql IN expression on json attribute works in sphinx 311 but not manticore


I’m looking at migrating from Sphinx 3.1.1 to Manticore 4.2.0. I have json array data used as a filter attribute, but Manticore doesn’t support the expression I use in Sphinx.

The Working with JSON attributes interactive course can be used to show the problem. If I create the testjson rt index, but with simpler metadata (similar format to mine);

id | name | metadata
1 | Product 1 | {“color”:[“blue”,“black”,“yellow”]}
2 | Product 2 | {“color”:[“white”,“black”,“blue”]}
3 | Product 3 | {“color”:[“black”]}
4 | Product 4 | NULL

In Sphinx I can query

select id from testjson where metadata.color in (‘yellow’, ‘white’);

and I will get id 1 and 2 back as result.

Same query in Manticore gives me an error;

ERROR 1064 (42000): index testjson: this filter type on expressions is not implemented yet

I do understand after using the json attributes course that in both Sphinx and Manticore I can query

select id,IN(metadata.color, ‘yellow’,‘white’) as color_filter from testjson where color_filter=1;

Is the expression style that Sphinx supports likely to be implemented in Manticore? I can re-write my search code to use the IN(expr, val1, val2...) as alias style, just the Sphinx implementation seems simpler and closer to sql syntax


seems like a bug - could you create ticket at github ?

Thanks, have raised issue #778