Elasticsearch 검색에서 제외하는 방법

미디어위키를 사용하면서 제일 인상적이었던 것은 SMW, Elasticsearch 그리고 최근에 쓰기 시작한 Semantic Result Format의 워드 클라우드 기능임.

워드 클라우드를 사용하면서 문서들의 연결 고리를 더 파악할 수 있게 되어서 아주 만족스러운데, 쓰다보니 불편한 것이 워드클라우드에 포함된 단어들이 elasticsearch에 모두 잡힌다는 것.

실제 문서 내부의 글들만 검색하면 좋겠는데, 부수적으로 워드클라우드의 내용까지 검색되는 것이 자꾸 눈에 거슬리기 시작했다.

사용하고 있는 방식은 이렇다.

  1. 시멘틱 쿼리를 포함하는 문서 A를 만들었다.
  2. 그 문서에 특정 property를 포함하는 문서 목록을 보여주는 쿼리를 넣었고,
  3. 워드 클라우드 관련된 쿼리를 넣었다.
  4. 문서 B에 문서 A를 끼워넣기 했다. {{:문서 A}}

끼워진 문서 A의 내용이 검색에서 제외하고 싶었다.

그래서 여기 저기 찾아보다가 Help:Controlling_search_engine_indexing 에서 제안하는 __NOINDEX__ 를 문서 A에 추가해 보았으나, 생각한 결과가 만들어지지 않았다.

또 검색하다보니 Help:CirrusSearch#How_frequently_is_the_search_index_updated? 에서 제안하는 class=”navigation-not-searchable” 를 넣는 방식이 있다고 해서 시도했다.

문서 A의 쿼리들은 표로 만들어져 있었는데, 각 열(row)의 시작에 위의 class를 넣은 다음에 검색에서 문서 A의 내용이 없어지는 것을 확인했다.

빙고!!

아마 연결된 문서들의 정보들이 모두 업데이트되면 내가 찾는 것들만 나오게 될 것이다.

이 글은 기타등등 카테고리에 분류되었습니다. 고유주소 북마크.

댓글 남기기