# Full-text Search
[Postgresql] Full text 관련 내용 정리
다음은 Mastering PostgreSQL 13 의 내용 중 index 부분의 일부를정리한 글입니다. 개인 복습용 Achieving better answers with fuzzy searching pg_trgm 사용. tri 알고리즘을 사용하여 단어간에 유사도 계산 인덱스는 GiST 사용 데이터셋이 클 경우 GIN 사용 Speeding up LIKE queries trigram index 가 동일하게 사용될 수 있다 Handling regular expressions trigram 은 정규식에도 사용 가능 Understanding full-text search 동등 일치검색보다는 contains opreation 에 가깝다. GIN index 를 통해 이뤄짐 텍스트를 분리 / 추출 ex) more supported languages Comparing strings 특정 키워
TIL 2021.05.30 [Lucene]
루씬은 어플리케이션이나 웹사이트에 검색기능을 쉽게 만들수잇는 자바로 만들어진 full-text search 라이브러리이다. full-tet index에 content를 추가하는 방식으로 루씬은 작동한다. 그리고 인덱스를 가지고 쿼리를 실행해서 정렬된 결과를 반환한다. content는 SQL이나 NoSQL 디비가 될 수도있고 파일이나 웹사이트에서 가져오는 것이 될수도있다. 루씬은 빠르게 결과 응답을 가져올수있다. 왜냐면 텍스트를 직접적으로 검색하는게 아니라 인덱스를 검색하기 때문이다. 그래서 full-text search 라이브러리라고 하는 것이다. 루씬이 인덱스를 검색하는 방식..즉, full-text search가 검색하는 방식은 책 맨뒤에 있는 나열되어 있는 키워드들과 페이지들을 검색하는 방식과 유사하다. 이런 타입의 인덱스를 inverted index라고 한다 페이지중심의 데이터 구조 (page->words) 를 키워드중심의 데이터구조로 invert하기 때문이다. 루씬에서
TIL 2021.05.29 [full text search]
어제부터 Elasticsearch가 배우고 싶었다. 엘라스틱서치를 찾아보면 항상 루씬이라는 키워드와 같이 나온다. 루씬을 먼저 찾아보기로 했다. 루씬을 찾아보니 full-text search라는 키워드가 나온다. What is full text search? full-text search는 웹이나 데이터베이스를 검색하는 방식이다. full-text search는 검색 요청에 대한 문서나 디비안에있는 모든 단어(term)를 인덱싱한다. 웹 검색 엔진과 문서 편집 소프트웨어는 웹에 저장되어있는 디비 텍스트를 검색할때나 로컬 드라이브에 있는것을 검색할때 full-text search 기술을 활용한다. full-text search는 웹 검색엔진과 웹페이지에서 사용되는 가장흔한 기술이다. 각 페이지는 검색되고 인덱싱된다. 텍스트 데이터를 검색하는 방법은 크게 두 가지가 있다. 첫 번째는 SQL LIKE 검색으로 모든 텍스트를 스캔하면서 검색 키워드가 존