Are specific terms ignored from searches?

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.

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:

저도 방금 이 문제를 겪었습니다. 정말… 엄청 짜증나네요. 업데이트가 있는지, 지금 이걸 변경할 방법이 있는지요? 'About’이 검색에서 필터링되는 단어가 되는 건 정말 안 됐습니다! 제가 여기 메타에서 이 문제를 겪은 과정은 다음과 같습니다:

플러그인 카테고리에 있었는데, 어떤 플러그인 주제에서는 답변이 자동 삭제되고 어떤 것은 그렇지 않다는 걸 알게 되었습니다. 그래서 해당 카테고리의 ‘About’ 주제에 이 부분에 대한 설명이 있는지 확인해 보려고 했습니다. 설명이 없어서 질문하려고 했는데, 먼저 자동 삭제되는 답변 주제에서 플러그인에 대한 기능 요청을 하려고 했습니다(:grinning_face_with_smiling_eyes:). 그래서 다시 메인 카테고리 목록으로 돌아가서 답변을 작성했습니다. 그 후 다시 카테고리 목록으로 돌아가서 The About the Plugin category 주제를 찾으려 했습니다. 오래되었지만 고정된 주제였고, 이미 읽은 상태였기 때문에… 더 이상 목록에 보이지 않았습니다(날짜에 맞는 위치로 내려간 상태였습니다). :roll_eyes: 알겠습니다, 문제없습니다. 그냥 검색해서 찾으면 되니까요… 하지만 물론, 결과는 실패였습니다.

더 큰 문제는 이 부분에 대해 UI 내에서 경고나 메시지가 전혀 없다는 것입니다. 검색이 단순히 조용히 실패합니다. 따라서 이 문제가 Postgres의 제한 사항 때문에 수정 불가능하다면, 검색에서 이러한 단어들이 필터링된다는 사실을 사용자에게 알리는 기능을 Discourse에 추가해 주시기를 강력히 제안합니다! 그렇지 않으면 상당히 혼란스럽습니다.

현재 Postgres의 스탑워드 목록에 "about"이 포함되어 있다는 것도 놀랍지만, 실제로는 다음과 같습니다:

한 가지 우회 방법은 카테고리 내에서 고정된 주제에 대해 검색하는 것입니다.

in:pinned #support

Jeff, 감사합니다. 고정된 주제(topic)를 검색할 수 있다는 걸 몰랐어요. Discourse 기능에서 항상 새로 발견할 수 있는 멋진 것들이 있네요. :smiley:

근데… 검색을 해도 결과가 아무것도 나오지 않는, 하지만 분명히 결과가 있어야 한다는 걸 알고 있는 불쌍한 사용자에게 경고를 주는 것에 대해 어떤 생각이신가요? 이제 전체 목록을 보니, 정말로 꽤 길네요…

검색어가 모두 스탑워드인 경우 경고를 표시하는 것이 좋은 아이디어입니다. @tgxworld 님, 이걸 구현하는 게 얼마나 어려울까요?

목록을 하드코딩하고 싶지 않으므로, postgres를 쿼리하여 "이 단어들이 모두 스탑워드인가요?"라고 알려줄 수 있는 방법이 필요합니다.

검색 쿼리에 추가 열을 반환할 수 있습니다. 이를 통해 해당 용어가 스톱워드만으로 구성되어 있는지 여부를 판별할 수 있으며, 이 작업 자체는 그리 어렵지 않습니다. 다만, 이 추가 열을 어디에 주입해야 하는지는 더 깊이 살펴봐야겠지만, 궁극적으로 우리가 달성해야 할 목표는 용어가 전부 스톱워드인지 아닌지를 확인하기 위해 추가적인 DB 쿼리를 실행하는 것을 피하는 것입니다.

검색 결과가 없을 때, 쿼리가 모두 정지어(stopword)로만 구성되어 있는지 확인하는 검사를 수행하는 것은 어떨까요? 이렇게 하면 결과가 부실한 경우에만 추가 검사가 실행됩니다. 예를 들어, 정지어 목록에 따라 "doing should now"와 같이 검색할 때 말이죠.

최악의 경우, 목록을 서버 측에 미러링하여 검사를 실행할 수 있습니다. 문자열이 127개뿐이지만, 그렇게 하면 해킹(hacky)한 방식이 될 것입니다. 대신, 부팅 시점에 정지어 목록을 조회하여 캐시에 저장하는 방식은 어떨까요?

네, 검색 결과에 추가된 열에 대해 제가 의도했던 것과 비슷합니다. 검색 결과가 비어 있으면, 해당 열을 조회하여 모든 용어가 스톱워드이기 때문인지, 아니면 매칭된 결과가 0건이기 때문인지를 파악할 수 있습니다.

이 스탑워드는 다른 언어에서 어떻게 작동하나요? 번역된 스탑워드도 필터링되나요? 아니면 특정 기술적 요구 사항과 연결된 영어 스탑워드만 필터링되나요?

다양한 언어에 대한 파일들이 있습니다

알겠습니다. 거의 모든 형태에서 모든 인칭 대명사가, 그리고 동사 be와 함께, or, only, when 같은 몇 가지 채워넣기 단어가 포함되어 있군요. 검색에서는 거의 모든 것을 우회할 수 있습니다. 예를 들어, 문장에서 인칭 대명사는 대부분 필요하지 않거든요. 하지만 그렇다고 해서 데이터베이스가 더 통제하기 쉬워진다는 점은 확실합니다.

언어별로 구축되어 있다는 것도 알아두면 좋겠네요. 감사합니다.