Insight 필터와 텍스트 검색
Filter 카드는 분석 경로의 객체 속성에 키워드 또는 속성별 조건을 적용합니다.
필터 종류
| 방식 | 구성 |
|---|---|
| Keyword search | 검색창에 값을 입력하고 Enter를 눌러 분석의 객체 속성 전반에서 찾습니다. |
| Property search | 속성을 입력하거나 드롭다운에서 고른 뒤 조건을 정합니다. 기본 검색형은 정확한 일치인 is이며 자료형에 따라 바꿀 수 있습니다. |
| Filter on linked property | 연결 대상 유형으로 이동하지 않고 그 객체의 속성으로 현재 객체를 필터링합니다. |
날짜 속성의 예를 들면 Project Start Date is May 15, 2023에서 Project Start Date is between Jan 1, 2023 and Dec 31, 2024로 조건을 바꿀 수 있습니다.
연결 속성은 속성 드롭다운 아래의 On a link에서 고릅니다. 분석의 객체 유형 하나 또는 여러 유형과 연결된 유형을 선택한 뒤 is linked to 또는 is not linked to 조건을 구성합니다. 연결 유형으로 분석 대상을 바꾸려면 Link 카드를 사용합니다.
Vector, leading wildcard와 regex 검색 등 특수 속성이 있으면 카드 아래에 추가 옵션이 나타납니다. 정규식 속성과 구문은 온톨로지 검색 구문을 확인합니다.
토큰화
텍스트 검색은 검색어를 토큰으로 나눕니다. 예를 들어 The Quick Brown Fox는 the, quick, brown, fox의 네 토큰이 됩니다. 토큰화는 대소문자를 구분하지 않습니다.
밑줄과 마침표는 토큰의 일부로 처리합니다. banana_pudding은 하나의 토큰이므로 banana만 검색하면 와일드카드 없이는 일치하지 않습니다.
반면 기본 분석기는 하이픈을 구분자로 처리합니다. well-known은 well과 known으로 나뉩니다. UUID처럼 하이픈이 있는 식별자도 하나의 연결된 검색어가 아니라 여러 토큰으로 비교될 수 있습니다. 분석기 종류와 동작은 텍스트 검색 원리를 참고합니다.
검색형별 일치 조건
is
분석하지 않은 텍스트 값과 정확히 일치하는지 비교합니다. The Quick Brown Fox는 같은 전체 값인 The Quick Brown Fox와 일치합니다.
starts with
소문자로 바꾼 검색어 뒤에 *를 붙이고 분석하지 않은 원시 필드값과 비교합니다.
contains
검색어의 마지막 토큰만 접두어로 비교하고 그 앞의 토큰들은 정확히 일치해야 합니다. 모든 토큰이 해당 필드에 존재해야 하지만 나타나는 순서는 상관없습니다. 이 동작은 텍스트 속성에 적용합니다.
The Quick Brown F를 입력하면 the, quick, brown은 정확한 토큰으로, f는 접두어로 비교합니다.
| 대상 값 | 결과와 이유 |
|---|---|
| the brown fox reached the quick rabbit | 일치. 필요한 세 토큰이 있고 fox가 f로 시작합니다. |
| the fox quickly jumped over the brown fence | 불일치. fence는 f로 시작하지만 quickly는 quick과 같은 토큰이 아닙니다. |
contains any word from
Multi-match 필터를 사용합니다. 검색 토큰 중 하나라도 속성값의 토큰과 정확히 같으면 일치합니다. The Quick Brown Fox는 the OR quick OR brown OR fox 조건입니다.
| 일치 | 불일치 |
|---|---|
| brown vehicle | brownie |
| fox hole | foxtrot |
| the quick fox ran through the forest | Many foxes move quickly |
단어 일부가 같은 것만으로는 일치하지 않습니다.
contains phrase
토큰들이 입력한 순서대로 연속해서 나타나야 합니다. The Quick Brown Fox는 The quick brown fox is climbing the tree와 일치합니다.
다음은 일치하지 않습니다.
- The Quick brown foxy bear: fox라는 독립 토큰이 없습니다.
- the brown rabbit met the quick fox near the river: 토큰 순서가 다릅니다.
- the quick smart and fast brown fox: 토큰 사이에 다른 단어가 들어갑니다.
matches terms within
입력한 모든 검색어가 정한 단어 간격 안에 있는지 검사합니다.
| 설정 | 의미 |
|---|---|
| Terms | 검색어 하나 이상. 직접 입력, 쉼표 구분 또는 목록 붙여 넣기로 추가합니다. 각 항목은 정확한 구문으로 처리하므로 여러 단어로 된 항목도 하나의 구문을 유지합니다. |
| Maximum gap | 검색어 사이에 허용할 최대 단어 수 |
| Match terms in order | 켜면 입력 순서대로 나타나야 하며, 끄면 순서는 상관없습니다. |
Terms가 the와 fox이고 Maximum gap이 2이면 the quick brown fox는 일치합니다. 사이에 quick brown의 두 단어가 있기 때문입니다. the quick brown lazy fox는 세 단어가 끼어 있으므로 일치하지 않습니다.
조건을 반전한 does not match terms within으로 해당 결과를 제외할 수 있습니다.
선행 와일드카드
선행 와일드카드는 특정 문자열로 끝나는 값을 찾습니다. 예를 들어 *smith는 Goldsmith와 Blacksmith 같은 값을 찾습니다.
String 속성에서 사용하려면 다음을 구성합니다.
- Ontology Manager에서 객체 유형과 대상 문자열 속성을 엽니다.
- Enable leading wildcards 렌더링 힌트를 켭니다.
- 필요한 Searchable 힌트도 켜져 있는지 확인합니다.
- 저장하고 기반 데이터소스를 Object Storage v1, 즉 Phonograph에 재인덱싱합니다. 다음 재인덱싱을 기다리거나 Data sources 탭에서 직접 시작할 수 있습니다.
전체 힌트 목록은 렌더링 힌트를 확인합니다.
*term*처럼 선행과 후행 와일드카드를 동시에 사용하는 검색은 지원하지 않습니다. *term 또는 term* 중 하나를 사용합니다. 중간 부분 문자열이 필요하면 Contour 또는 Workshop Filter List의 Regex 모드를 사용할 수 있습니다.
검색 결과가 예상과 다를 때
단어 일부 검색
기본 is에서 app은 application과 같은 값이 아닙니다. application처럼 입력 문자열로 시작하는 단어를 찾으려면 마지막 토큰을 접두어로 처리하는 contains를 사용합니다.
단어 중간의 cat처럼 찾으려는 문자열이 application 안에 있으면 표준 검색형만으로는 찾을 수 없습니다. Regex가 활성화된 속성에서 .*cat.* 같은 패턴을 사용할 수 있습니다.
와일드카드의 대소문자와 여러 단어
직접 입력한 와일드카드 질의는 분석기를 통과하지 않고 인덱싱된 토큰과 문자 그대로 비교됩니다. 인덱스가 소문자이므로 Quick* 대신 그 소문자 형태에 맞는 질의를 사용합니다. 토큰 하나는 단어 하나이므로 여러 단어를 함께 넣은 와일드카드 질의는 일치하지 않습니다.
선행 와일드카드가 결과를 반환하지 않을 때
해당 String 속성의 Enable leading wildcards 힌트를 확인합니다. 힌트를 켜지 않은 속성에서는 *term 검색이 결과를 반환하지 않습니다.