다양한 텍스트 기반 필드에서 검색해야하는 응용 프로그램이 있습니다. 응용 프로그램은 NHibernate를 ORM으로 사용하여 개발됩니다.데이터베이스의 텍스트 기반 검색을위한 모범 사례
키워드가 유사한 단어와 일치하는 경우에도 관련 결과를 반환 할 수 있도록 Porter Stemming을 검색에 구현하고 싶습니다. 예를 들어 제품 설명에 memories
이 포함되어 있고 검색 키워드는 memory
입니다.
누구나 이러한 검색 유형에 대한 우수 사례를 제안 할 수 있습니까? 마음에 오는 첫 번째 아이디어는 예를 들어, 데이터베이스 같은 분야의 두 가지 버전을 저장하는 경우 : Description
열은 웹 사이트 관리자가 입력 한 텍스트가 될 것이다
Description
Description_Search
과의 텍스트 볼 수 있습니다 프론트 엔드.
Description_Search
은 동일한 텍스트를 포함하지만 Porter-Stemming 알고리즘을 통과합니다. 검색 쿼리는 Description
대신 Description_Search
필드를 기반으로합니다.
의미가 있습니까? 거의 동일한 텍스트의 두 버전을 저장해야하는 공간 낭비입니까?
또한이 경우 Lucene.Net
이 도움이 될까요? 나는 전체 텍스트 기반 검색을 위해 Lucene.Net을 통합하는 방법을 찾고 있지만 아직 자세히 조사하지는 않았다.
미리 감사드립니다.
일부 RDBMS 제품은 많은 추가 작업을 수행하지 않고도 검색을 용이하게하는 기능을 제공합니다. SQL Server의 전체 텍스트 검색이 떠오르지 만 다른 것들이 있습니다.성능이 크게 향상되면 데이터를 복제하는 데 낭비가되지 않습니다. 사실 이것은 색인 생성과 동일합니다. – Yuck
Lucene을 사용하면 간단합니다. http://stackoverflow.com/a/5394769/54937 –
http://www.d80.co.uk/post/2011/03/04/Nhibernate-Search-Tutorial-with-LuceneNet - and - NHibernate-30.aspx http://ayende.com/blog/3992/nhibernate-search –