2010-08-06 6 views
2

nhibernate를 사용하여 텍스트 검색 기능을 얻으려고하는 가장 좋은 방법은 무엇입니까? NHibernate.Search에 대해 읽었지만 라이브러리를 찾을 수 없습니다.NHibernate 전체 텍스트 검색

최신 NHibernate 소스 코드 (2.1.2)를 다운로드하여 컴파일했지만 NHibernate.Search를 찾을 수 없습니다.

누구에게 의견이 있습니까? 또는 텍스트 검색을 수행하는 다른 방법은 무엇입니까?

편집 : MySQL 데이터베이스를 사용하여 어떤 차이가 있습니다.

답변

2

NHiberante.Search Nhiberante와 Lucene이 함께 작동하도록 별도의 dll을 검색하십시오. 사용하려면 다운로드하고 참조해야합니다. Nhiberante.Search가 어떻게 작동하는지 이해하려면 Lucene에 대한 소개를 읽는 것이 좋습니다. 당신이 DLL을 얻을 수있는 장소의

하나는 MySQL의 특정 전체 텍스트 검색 옵션을 원한다면 당신이 그들을 사용하는, NHibernate에에서 도움이되지 않습니다 hornget

입니다.

1

당신은 Expression.Sql를 사용할 수 있지만 내가 그것을 사용하여 MySQL의 저장 프로 시저

MySQL의 저장 프로 시저 좋은 생각 :

CREATE PROCEDURE `GetProductsByText`(IN `queryText` VARCHAR(100) CHARSET utf8) 
SELECT * 
FROM Products 
WHERE MATCH(Title, Description) AGAINST (queryText) 

귀하의 NHibernate에 매핑 XML 파일 :

<sql-query name="GetProductsByText"> 
<return class="Product"/> 
    call `GetProductsByText`(:queryText) 
</sql-query> 

당신의 C# nhibernate 검색어 :

public IList<Product> FindByText (string text) 
{ 
    var session = SessionFactory.GetCurrentSession(); 
    IQuery query = session.GetNamedQuery ("GetProductsByText"); 

    return query.SetString ("queryText", text).List<Product>();   
} 
+0

멋지네요 ... – Fanda