2008-11-07 2 views
12

Lucene.Net은 자주 변경되는 콘텐츠 검색 엔진으로 적합합니까?Lucene.Net은 자주 변경되는 콘텐츠 검색 엔진으로 적합합니까?

또는 더 구체적으로 lucene.net 색인을 얼마나 빨리 업데이트 할 수 있는지에 대한 주관적인 의견을 제시 할 수 있습니까? 자주 변경되는 내용을 검색하는 다른 방법은 훌륭합니다.

우리는 포럼을 개발 중입니다. 포럼 게시물은 포럼 저장소에 자주 추가됩니다. 우리는 이러한 게시물을 검색 할 수있게되기 위해 매우 신속하게 lucene 색인에 추가해야한다고 생각합니다 (< 0.5s). 처음에는 저장소에 약 5E6 개의 게시물이 있습니다. 비 이국적인 서버에서 실행되는 검색 엔진이라고 가정합니다 (이것이 매우 모호하다는 것을 알고 있습니다!).

자주 변경되는 콘텐츠 검색 문제를 해결하는 것과 관련된 다른 제안이 감사하게 여겨집니다. 포럼 게시물은 다양한 이름의 태그 (태그 이름과 값이 일치해야 함)에서 검색 할 수 있어야합니다. SQL 기반 접근법 (Toxi 스키마 기반)은 우리가 원하는 성능을 제공하지 못합니다.

+0

질문에 이미 답변했지만 서버가 검색을 처리 할 수 ​​있다고 생각할 수도 있습니다 (out-of-process가 옵션 인 경우) [Solr] (http://lucene.apache.org/ solr /) 또는 [elasticsearch] (http://www.elasticsearch.org/); 둘 다 인덱스의 생성과 관리를 잘 처리 할뿐만 아니라 대규모/다중 인덱스를 처리 할 때 중요한 복제, 샤딩 (sharding) 등을 처리합니다. – casperOne

답변

9

아웃 포럼 (http://episteme.arstechnica.com)은 검색 백엔드로 Lucene을 사용하므로 실행 가능합니다. 게시물은 원하는만큼 신속하게 색인 생성되지 않지만 인덱싱 하드웨어를 강화하고 똑똑한 캐싱 전략을 사용하여 게시물을 해결할 수 있습니다.

이 질문에 대한 일반적인 대답은 작성/업데이트 패턴에 따라 다릅니다. 포럼은 비교적 쉽습니다. 대부분의 콘텐츠가 새롭고 기존 콘텐츠가 자주 업데이트되지 않기 때문입니다.

포럼의 경우 "아카이브"색인과 "실시간"색인을 갖는 것이 좋습니다. 실시간 색인에는 마지막 날, 주, 1 년 동안의 게시물이 포함될 수 있지만 아카이브 색인에는 아마 다시는 만질 수없는 많은 게시물이 포함됩니다. 따라서 누군가가 새 게시물을 만들면 처음에는 실시간 색인에 색인이 생성됩니다. 나중에 일괄 작업을 수행하면 실시간 색인이 지워지고 모든 것을 아카이브로 다시 색인화합니다.

Lucene은 여러 색인을 통해 쿼리하는 데 매우 적합합니다. 그 능력을 남용해야합니다. :)

4

Lucene.Net은 매우 빠르지 만 잘못 사용하면 쿼리 속도가 느려질 수 있습니다. Erik Hatcher와 Otis Gospodnetić의 Lucene in Action 책을 읽는 것이 좋습니다. 그것은 성능 테스트와 튜닝에 관한 아주 좋은 장을 포함하고 있습니다.

관련 문제