2010-04-22 4 views
2

내 웹 사이트에 검색 엔진을 추가하고 싶습니다. 부울 검색을 처리하고 순서 또는 최상의 일치 결과 목록을 제공합니다. LINQ를 사용할 수 있으려면 최종 쿼리에 where 절을 추가하고 싶습니다. 나는 LINQ와 함께 작동하는 최고의 오픈 소스 .NET 검색 엔진을 찾고있다. 나는 lucene.net을 좋아하지만 문제는 2008 년 이래로 LINQ 인터페이스 (LINQ to Lucene)가 업데이트되지 않았다는 것입니다. 거기에 좋은 옵션이 있습니까?오픈 소스 LINQ 검색 엔진 웹 사이트

답변

1

Microsoft의 무료 Search Server Express를 사용해 볼 수 있습니다. beta for the 2010 version에서 볼 수 있지만 곧 공개 될 예정입니다. (SharePoint) Search API는 SQL과 매우 유사하므로 where 절을 추가 할 수 있습니다.

linq 또는 오픈 소스가 아니지만 무료이며 귀하의 경우에 효과가있을 수 있습니다. 나는 lucene linq api에서 약간 보았고 당신과 같은 결론에 도달했다. Lucene은 아직 작업 중이지만 업데이트되지 않았습니다.

다른 옵션은 사용자 고유의 Lucene Linq 공급자를 만드는 것이지만 약간의 작업이 필요합니다.

FullTextSqlQuery 클래스에 대한 문서입니다.

FullTextSqlQuery fullTextSqlQuery = new FullTextSqlQuery(site) 
fullTextSqlQuery.QueryText = String.Format("SELECT Title, SiteName, Path FROM Scope() WHERE \"scope\"='All Sites' AND CONTAINS('\"{0}\"')", searchPhrase), 

및 쿼리의 WHERE 부분에 더 추가 할 수 있습니다 : (샘플 here와 이전 버전의 문서)

는 여기의 모습을 보여줄 수있는 코드입니다.

+0

미카엘, 정말 감사드립니다. 나는 (소프트웨어를 설치할 수없는) 공유 웹 서버에서 작동해야하기 때문에 검색 서버가 지금 옵션이 아니라고 생각하며 LINQ와 함께 작동해야합니다. 또한 lucene linq 공급자를 만드는 투자 할 시간이 없다, 나는 이미 존재하는 뭔가를 찾고 싶습니다./ – Noel

+0

linq는 구현하는 기본 API에 대한 단순한 공급자/래퍼입니다. linq 대신 사용자 정의 코드로 쿼리를 수정할 수 있어야합니다. 다른 데이터 소스 (객체, db 등)에서 linq로 결합하는 것을 생각하면 매우 잘 작동하지 않을 수 있습니다. lucene 쿼리는 어떻게 보이며 어떻게 수정해야합니까? –

0

나는 SQL Server의 전체 텍스트 인덱싱 기능을 사용하기로 결정했습니다. lucene.net만큼 완벽한 기능을 갖춘 것은 아니지만 제 요구 사항에 따라 꽤 잘 된 것입니다.