본문 바로가기

Crescent

페이스북의 serverside group feed 색인 페이스북 그룹 중 serverside group을 아시나요? 이름만들어도 쟁쟁하신 분들이 좋은 정보와 자료 그리고 토론들을 통해많은 정보들을 제공받을 수 있는 페이스북 그룹입니다. https://www.facebook.com/groups/serverside/ 저도 가입해서 눈팅을 주로하고 있는데페이스북의 특성상 과거의 자료를 찾기가 너무나 힘들어서crescent로 이 그룹의 피드들을 오늘날짜까지 색인을 해보았습니다. 원래 crescent 데모버전이 올라가있던 AWS에 색인했고정기적으로 색인이 돌고있지는 않습니다. 사용을 많이 하시게 된다면, 커멘트색인, 작성자색인등도 추가 가능하겠지만...아직은 그냥 올려두기만 했습니다. 검색방법은 1. http://ec2-54-248-115-161.ap-northeas.. 더보기
[Crescent] 정규식 검색이 추가되었습니다. 추출된 키워드에 대해서 정규식 검색 기능이 추가되었습니다.파라메터는 rq를 사용합니다. 예 : rq="[0-8]+$" 음... 딱히 더 말씀드릴건 없네요..^^; 루씬의 RegexQuery 클래스를 사용하며, 다른 쿼리들과 연동됩니다. 더보기
[Crescent] 4월 2일 기능수정 내용 1. Analyzer 설정 분리 - 색인/검색용 Analyzer를 따로 설정 할 수 있습니다. 2. Analyzer 동적생성 - 기존에는 KoreanAnalyzer가 하드코딩되어 사용되었는데요, 이번에 위 설정을 통해서 Analyzer를 collection별로다이내믹하게 생성하여 사용합니다. 더보기
[Crescent] 2013년 3월 자잘한 기능 수정 요 몇달간 실제로 crescent를 사내에 포팅하고 사용하면서 자잘하게 나오던 문제들을 수정을 했었습니다. 1. was 구동시 -DcrescentHome 파라메터로 collections.xml 파일의 경로 지정 - war 배포가 기본이다보니, 기본 경로인 클래스패스에 collections.xml이 들어가 있으니수정/reload등에 제약이 많아 별도 디렉토리에 설정파일을 위치시키고 읽을 수 있도록 수정하였습니다. - 이것때문에 embedded DB를 쓰느니, 삽질 많이 했는데.. solr가 이런 형태로 사용하더라구요.. -.-ㅋ - https://github.com/need4spd/crescent/wiki/02.-How-to-Start-Server 2. update를 한번에 한건씩만 가능하도록 걸려있던 제.. 더보기
[crescent] 12/8 기능추가 새벽에 일어나서.. Filter 기능을 추가하였습니다. ### Crescent에서는 Query보다 더 빠른 검색을 위해 Filter를 제공합니다.### 형태는 CustomQuery와 동일한 문법을 사용합니다.### 파라메터명은 ft입니다. 예제>search.devys?col_name=sample&keyword=나이키&ft=title:"운동화" search.devys?col_name=sample&keyword=나이키&ft=create_date:"[20120101 TO 20120130]" 쿼리와의 차이점은 검색에서 제외되는 document들이 ranking을 결정하는데 영향을 주냐 안 주냐의 차이입니다.예를들어 아래와 같이 2개의 document가 있다고 가정하면.. 1) 장소:"한국", "서울" 본문:"저.. 더보기
[Crescent] 12월 3일 crescent 기능 수정 crescent의 색인로직이 수정되었습니다. 1. indexing json format이 변경되었습니다.https://github.com/need4spd/crescent/wiki/05.-Indexing-File-Format 2. indexing Type에 따라서 indexing 후 commit의 수행여부가 결정됩니다. bulk indexing에만 commit을 실행합니다. commit을 하지 않아도, 아래 3번의 스레드에 의해서 주기적으로 update된 내용이 IndexSearcher로 반영됩니다. 3. SearcherManager.mayberefresh() 메서드를 주기적으로 실행하는 백그라운드 스레드가 기동되며, collections.xml에 스레드의 수행 주기를 설정 할 수 있습니다. (minute.. 더보기
[Crescent] 기능추가 - 커스텀쿼리 crescent에 커스텀 쿼리 기능을 추가하였습니다.그냥 단순하게 사용 할 경우에는, collections.xml에 defaultSearchField를 지정해놓고keyword만 날려서 검색을 하거나, search_field 파라메터에 필드를 넣어서 검색을 하면 됩니다. col_name=sample&keyword=나이키&page_num=1&page_size=50&sort=id_sort desc,name_sort asc&search_field=name,id 여기서 좀 더 쿼리식을 원하는대로 만들어서 검색하고 싶어하는 사용자를 위해 Custom Query 기능을 넣었습니다. 기본적으로 Lucene의 쿼리 Syntax를 사용합니다. 문법은[+|-]필드명:"키워드" 혹은[+|-]필드명:"[min To max]" .. 더보기
[Crescent] 관리자 페이지 개선 둘째가 태어난 이후로.. 밤 10시에 잠들고, crescent 개발은 주로 새벽/점심을 이용해서 하고 있습니다 -_-; 관리자 페이지를 좀 개선해보았습니다. 우선, 색인의 기본이 되는 collection.xml 설정 페이지입니다. 각 필드의 색인, store, term vector등의 설정과 인덱스 파일 경로등의 설정, 필드추가등의 작업을 할 수 있는 페이지입니다. 원래 xml 파일을 직접 수정해야했는데.. 제가 불편해서 못 쓰겠더라구요 -_- 사전관리 페이지입니다. 각 사전을 탭메뉴로 변경하고, 테이블을 조금 조정하였습니다.아직 내부적으로는 개선의 여지가 많은 페이지이긴 합니다... 형태소분석 테스트 페이지입니다. 결과를 테이블로 수정하였고, 색인용/검색쿼리 분석용으로 나눠서 결과를 보여줍니다.분석된 .. 더보기
[Crescent] 11월 5일 기능 추가 및 수정 내용 [Crescent] 11월 5일 기능 추가 및 수정 내용 1. NRTManager 적용 - Near Real Time 검색을 위한 NRTManager를 적용하였습니다.이에 따라, IndexWriter는 TrackingIndexWriter로 전환되었으며, 색인 후 commit/ close를 하지 않고단일 인스턴스로 계속 사용하게 됩니다. 2. IndexWrtierManager 개발- Collection별 TrackingIndexWriter의 단일객체 사용 지원을 위해 IndexWriterManager를 추가하였습니다. 더보기
[Crescent] 기능패치 및 사전 관리 페이지에 Bootstrap을 적용했습니다. 강한구님께서 알려주시고기본틀을 pull request해주셔서 그걸바탕으로 해서적용해보았습니다. 워낙 CSS나 HTML을 잘 못해서..처음에 "이게 뭐야 도대체..."라는 생각이 들었었는데..역시 그냥 맨땅의 헤딩을 해보며 조금씩 붙여보니까 아~~ 하겠더라구요.. 기본적으로 위와 같은 형태의 UI를 계속 적용해볼 생각입니다. 기능패치 내용입니다. 1. 동의어사전 탐색시 "오라클,oracle"을 찾을 때 "오라클" 과 같은 동의어셋을 구성하는 단일 단어로 검색이 되지 않던 부분을 수정하였습니다. 2. 동의어사전에서 동의어셋추가 혹은 삭제시 사전을 re-indexing 하도록 수정하였습니다. 3. SearcherManager 클래스를 적용하였습니다. 4. bootstrap 프레임워크를 적용하였습니다. 더보기