¿Se ignoran términos específicos en las búsquedas?

I’m having a few difficulties with the search functionality today.

We have an automated process we creates topics based on a lecture from a course, an example may be;

About ‘Implementing Health & Damage’

I found myself wanting to reduces the maximum number of characters for a topic length and decide I’d do a quick search to see how many of our automated topics are quite long, to get a feel for the suitable max length.

If I search using the above, I’ll get result, but I need the search to be a little more general than that, so I’ve tried searching for;

About ’

…knowing that is the start of the format we always use. When I do, I don’t get any results, if I add another word after the apostrophe I do get results. I assumed at that point it was related to the apostrophe, but nope, if I search for just;

About

I get no results, yet if I search for;

Test

I do get results! This indicates there isn’t a limitation on the number of words as a minimum for a search, and we have a 3 character limit set for the term, so it isn’t that. The only thing I can think of is that there is a list of “words” that are being ignored from a search, yet I don’t think we’ve set these up.

Any information would be appreciated. :slight_smile:


Update

I have also tested this with “because”, “and”, “the” and these all produce no results, so I’m feeling that there is a list of “common words” which are being ignored, but because I don’t have access to these via the settings I cannot alter them, and, cannot perform the search I want to perform.

Yes, I believe these are “stop” words — see:

I’m not sure if things have changed much since two years ago, but there doesn’t seem to be an easy way to change those.

8 Me gusta

Hi Kris,

Thanks for the reply.

Yeah, I thought as much. It’s a pain on this occasion as in this specific case the word does have value.

I guess using DataExplorer wouldn’t get around this either?


Update

Actually, via DataExplorer it works. I guess a full text search isn’t carried out when querying the topic title field.

Looks like a work-around :slight_smile:

7 Me gusta

Acabo de toparme con esto yo mismo. Es… extremadamente molesto. ¿Hay alguna actualización o alguna forma de cambiar esto ahora? ¡“About” definitivamente no debería ser una palabra filtrada para la búsqueda! Así es como me encontré con esto aquí en Meta:

Estaba en la categoría de Plugins y noté que algunos temas de plugins eliminan automáticamente las respuestas, mientras que otros no. Así que fui a ver si había una explicación para esto en el tema “About” de esa categoría. No la había, así que iba a preguntar al respecto, pero primero quería hacer una solicitud de función para un plugin (en un tema que elimina respuestas automáticamente :grinning_face_with_smiling_eyes:). Así que volví a la lista principal de categorías y publiqué mi respuesta. Luego volví a la lista de categorías e intenté encontrar el tema About the Plugin category. Como era un tema antiguo pero fijado, y ya lo había leído… ya no era visible en la lista (había sido movido a su posición correspondiente según su fecha). :roll_eyes: Vale, no hay problema, simplemente lo buscaré… Pero, por supuesto, sin éxito.

El problema mayor es que no hay absolutamente ninguna advertencia o mensaje en la interfaz de usuario sobre esto. La búsqueda simplemente falla en silencio. Así que, si esto no se puede solucionar debido a limitaciones de Postgres, me gustaría sugerir encarecidamente que agreguen una función a Discourse que notifique a las personas cuando estas palabras se filtren de la búsqueda. De lo contrario, resulta bastante confuso.

1 me gusta

También me sorprende que “about” esté en la lista actual de palabras vacías de Postgres, pero aquí está:

Una solución alternativa es buscar temas fijados en una categoría:

in:pinned #support

1 me gusta

Gracias, Jeff. No sabía que podías buscar temas fijados. Siempre hay algo genial y nuevo que descubrir en las funciones de Discourse. :smiley:

Pero… ¿tienes alguna idea sobre cómo advertir al pobre usuario que busca y no encuentra nada, incluso cuando sabe que debería haber resultados? Ahora que veo la lista completa, es realmente bastante larga…

2 Me gusta

Sería buena idea emitir una advertencia si tu búsqueda consta exclusivamente de palabras vacías. ¿Qué tan difícil sería hacerlo @tgxworld?

No queremos codificar la lista de forma rígida, por lo que necesitamos una manera de consultar PostgreSQL y que nos diga: “¿son todas estas palabras palabras vacías?”.

3 Me gusta

Podemos devolver una columna adicional en nuestra consulta de búsqueda que nos permita determinar si el término consistía únicamente en palabras vacías, lo cual no es muy difícil de hacer. Tendré que profundizar un poco más para averiguar dónde inyectar esa columna adicional, pero el objetivo final para nosotros debería ser evitar una consulta adicional a la base de datos solo para determinar si un término está compuesto únicamente por palabras vacías o no.

2 Me gusta

Quizás, si no hay resultados de búsqueda, ejecutamos esa comprobación para ver si la consulta consta únicamente de palabras vacías. De este modo, solo realizamos una verificación adicional cuando los resultados son pobres de todos modos. Según la lista de palabras vacías, por ejemplo, si buscas “doing should now”.

En el peor de los casos, podríamos duplicar la lista y ejecutar la comprobación en el servidor; son solo 127 cadenas, pero sería un parche. Tal vez, al iniciar el sistema, podríamos consultar la lista de palabras vacías y almacenarla en caché.

2 Me gusta

Sí, es algo similar a lo que quería decir con la columna adicional en los resultados de búsqueda. Si la búsqueda está vacía, consultamos la columna para determinar si es porque todos los términos son palabras vacías o porque obtuvimos 0 coincidencias.

2 Me gusta

¿Cómo funcionan estas palabras vacías en otros idiomas? ¿Las traducidas también se detienen? ¿O solo las inglesas cuando están conectadas a alguna necesidad técnica?

Hay archivos para diferentes idiomas

2 Me gusta

Entiendo. Casi todos los pronombres personales en casi todas las formas, y con el verbo ser, además de algunos conectores como or, only, when, etc. Casi todo se puede evitar en las búsquedas, por ejemplo, en su mayoría no necesitamos pronombres en una oración. Pero claro, mantiene la base de datos más controlable.

Pero es bueno saber que también se ha construido por idioma. Gracias.

2 Me gusta