es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Por qué los filtros de búsqueda de Algolia no están devolviendo los resultados esperados?

Tengo un índice con el siguiente objeto (actualmente solo hay un objeto en el índice):

imagen

No tengo ninguna configuración de atributos buscables, porque siempre pasaré una consulta vacía al buscar en este índice. Tanto “createdon” como “referenceid” están configurados como “attributesForFaceting”, con ambos establecidos en la opción “no buscable”.

Cuando uso el filtro a continuación, no obtengo resultados:

createdon > 1639277337811 AND (referenceid:1MXSmeYJDFDeo7P57gAz OR referenceid:0HpSqhb4OrZR4M0pC9IextLfDcA3 OR referenceid:2owRr1davxRMuIJDR8OzYJV9oBV2 OR referenceid:IP3PYQWl3oVJZtk3wPdezR1cCc43 OR referenceid:Qf5ecisVU0hMzJjS14GG06mXeco1 OR referenceid:WotgE0eR2pPufOwuB6WotJ8lDcm1 OR referenceid:Z0ruWTWcHFPG57AQc0KpOVErw4L2 OR referenceid:bsQHBKBncrMZWZpdG3SFxfbW1Um2 OR referenceid:m1wSTiquI8bwllVgdy4kAumZE0a2 OR referenceid:yhindpmBVAhL68TOScY7hguKf992)

Cuando intento depurar, también he probado esto en las opciones de búsqueda avanzada de la consola de Algolia: referenceid:1MXSmeYJDFDeo7P57gAz OR referenceid:111S, lo cual tampoco arroja resultados.

Mi teoría actual es que Algolia requiere que todos los referenceids estén en el índice para que la búsqueda tenga éxito. ¿Alguien puede confirmar si este es el caso? Y si es así, ¿hay alguna forma de incluir valores en los filtros que pueden no existir en el índice en el momento de la consulta?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Basado en la información proporcionada, parece que el problema no está relacionado con la configuración de attributesForFaceting ni con el filtrado en sí, sino más bien con el hecho de que el único objeto en el índice no contiene ninguno de los valores de referenceid especificados en el filtro.

    En Algolia, los filtros son básicamente una forma de reducir el conjunto de objetos que coinciden con una determinada consulta, basándose en los valores de sus atributos. Si un filtro contiene un valor que ninguno de los objetos en el índice tiene para ese atributo, entonces no se devolverán objetos coincidentes.

    Por lo tanto, para que el filtro funcione, al menos un objeto en el índice debe tener uno de los valores de referenceid especificados en el filtro.

    Si es posible que los valores de referenceid utilizados en los filtros no siempre existan en el índice, una solución podría ser agregar un objeto ficticio al índice con todos los posibles valores de referenceid y asegurarse de no incluirlo en los resultados de búsqueda. De esta manera, el filtro siempre podrá encontrar al menos un objeto en el índice sin afectar los resultados de búsqueda reales.

Comments are closed.