2009-09-15 10 views
4

누구나 memcached를 level2 캐시로 사용했거나 lucene.net을 nhibernate로 검색 했습니까? 인덱싱/검색 & 캐싱 nhibernate에 대한 발전을 공유 할 수 있습니까?memcached 또는 lucene.net with nhibernate

그리고 nhibernate가있는 가장 빠른 l2cache 솔루션 인 memcached (appserver가 동일한 시스템에 enyim cilent 사용)입니까?

베스트 감사합니다 우리는 몇 GB의 대용량 데이터베이스의 검색 성능을 향상시키기 위해 성공 Lucene.NET을 사용했다 sirmak

+0

호기심에서 벗어나서 어떤 문제를 해결하려고합니까? – Kane

+0

안녕하세요, 저는 최상의 캐싱 및 색인 생성/검색 솔루션을 nhibernate와 함께 사용하려고 노력하고 있습니다. – sirmak

답변

3

실험적으로는 모두입니다. 두 번째 레벨 캐시의 경우 다른 옵션과 비교할 수 없습니다. 단 하나만 갖고있는 것 외에는 다른 옵션과 비교할 수 없습니다. 즉각적인 성능 향상을 얻을 수 있지만 시나리오에서는 더 눈에니다 큰 데이터 세트를 다룰 때나 클러스터가있을 때 주로 삽입/업데이트보다 읽기 쉽습니다. 특히 응용 프로그램에 Lucene.NET를 들어 내가 더 NHibernate에 비록 둘 바닐라 (사용했습니다

(리눅스 싸구려 - 오 기계처럼) 기계의 모든 종류에 실질적으로 실행할 수 있지만로서의 사운드 솔루션을 memcached를위한 생산뿐만 아니라 NHibernate.Search의 형태로) nhibernate와의 통합은 매끄럽다 : 인덱스는 커튼 뒤에서 생성되고 조작되며 모든 것은 클래스 선언에서 설정된다 (불행하게도 클래스와 속성 속성은 매핑). Sql-Server의 전체 텍스트 검색 엔진과 비교할 때, FT 엔진을 사용하여 가져 오기 위해 일반 SQL을 작성할 필요가 없으므로 유지 관리가 용이하다고 생각하면 Lucene 쿼리에 대한 메커니즘뿐만 아니라 Criteria 메커니즘을 사용하면됩니다.

데이터베이스와의 동기화는 업데이트/삽입/삭제 중에 자동으로 수행됩니다. Lucene.NET 엔진의 성능은 컴퓨터의 CPU/RAM 구성과 저장 매체의 속도에 따라 달라지며 SqlServer의 FullText Engine보다 빠르지 만 비교할 수 있습니다. 참고로, NHibernate.Search 인덱스는 간단하며 각각의 인덱스 된 클래스는 자체 인덱스 파일을 가지고있어 인덱스 개발 및 엿보기가 쉬워집니다.

2

. 그런 다음 Lucene.NET 결과 ID가 NHibernate로 전달되어 전달됩니다. NHibernate 질의는 시간 제한을 가지지 만 Lucene.NET은 몇 초 만에 결과를 반환합니다. 우리는 Memcached를 사용하지 않았기 때문에 두 솔루션을 비교할 수는 없습니다.

가장 큰 단점은 Lucene 인덱스가 실제 데이터베이스와 동기화되어야한다는 사실입니다.

편집 : 당신이보고 할 수 있습니다 한 가지는 당신이 Lucene.NET & NHibernate에 경로를 갈 거라면, 그것은 당신을 위해 루씬의 색인 작성 & 동기화를 처리하는 프로젝트의, NHibernate.Search입니다. 마지막으로 클래스 당 인덱스를 만들고 모든 속성을 자동으로 인덱싱 한 것을 확인한 멋진 기능이 있습니다. 이것은 참조 된 객체를 색인하기를 원했기 때문에 우리에게 유용하지는 않지만, 어떤 경우에는 이것이 충분해야합니다. 프로젝트가 지금 어느 상태에 있는지 알지 못한다. 내가 한 번 보았으니 꽤 오랜 시간이 걸렸다.

+0

대단히 감사합니다. – sirmak