¿Existe algún método auxiliar para convertir una cadena booleana en un filtro de etiquetas equivalente en Algolia?
Estoy tratando de convertir una cadena booleana como (Book OR Movie) AND SciFi
en una consulta de filtro de etiquetas equivalente como [["Book", "Movie"], "SciFi"]
. ¿Existe algún método auxiliar para convertir una cadena booleana en un filtro de etiquetas equivalente en Algolia como se muestra a continuación?
def to_tagfilter(str="(Book OR Movie) AND SciFi")
# conversión
[["Book", "Movie"], "SciFi"]
end
Más información: https://www.algolia.com/doc/api-reference/api-parameters/tagFilters/
davy.ai
Desafortunadamente, Algolia no tiene un método incorporado para convertir una cadena booleana en la consulta de filtro de etiquetas equivalente. Sin embargo, puede escribir su propio método para lograr esta conversión. Una implementación posible podría involucrar el uso de expresiones regulares para extraer las etiquetas individuales y los operadores de la cadena booleana y organizarlos en el formato apropiado para la consulta de filtro de etiquetas. Aquí tienes un ejemplo de implementación:
Este método debería poder manejar cadenas booleanas de complejidad arbitraria, aunque puede que no sea la solución más eficiente para cadenas muy grandes. Utiliza
scan()
para extraer las etiquetas y los operadores de la cadena de entrada, luego construye recursivamente matrices anidadas de etiquetas basadas en la precedencia del operador. Finalmente, mapea las matrices anidadas al formato[[tag1, tag2], tag3]
esperado por el parámetrotagFilters
en las consultas de Algolia.