2009-05-02 3 views
0

내 프로젝트에서 Lucene To Lucene을 구현하려고하는데, 무언가를 검색하려고 할 때 항상 Enumeration yielded no results 결과를 얻었으며 디버그하여 창에서 내 [IndexContext].[TableProperty]을 열려고하면이 메시지가 나타납니다.Linq to Lucene : "Lucene Term의 술어는 빈 문자열이 될 수 없습니다."

Lucene Term의 술어는 이 빈 문자열이 될 수 없습니다.

Google에서 검색해 봤지만 분명히 결과가 없습니다.

누구도 전에이 메시지가 발생 했습니까? 어떻게 해결할 수 있습니까? 나는 (Between, Match, Like 등) Lucine.Linq.Extensions에서 발견되는 확장 방법 중 하나를 사용하고 때 현재는 데이터

[업데이트]

을 반환하지 않는 것은 분명히 문제이기 때문이다. 다음 쿼리 결과를 반환

var db = new MusicRepo_DB_IndexContext(@"C:\MusicRepoDB_index", 
             new MusicRepo_DBDataContext()); 

: 다음의 예를 가지고 db.Artists.Where(a => a.Name == "Camel");

을하지만이 일하지 않는 : db.Artists.Where(a => a.Search("Camel"));

[업데이트] 추가 시험시

, 나는 Match 확장 메소드가 실제로 다른 결과와 같은 결과를 리턴한다는 것을 알게되었습니다 (Search,). 210)하지 마십시오. 나는 여전히이 문제로 어려움을 겪고있다.

답변

1

나는 내 프로젝트에도 이것을 사용하고 있으며, Lucene이 받아들이지 않기 때문에 "Lucene Term의 술어는 빈 문자열이 될 수 없다."라고이 메시지가 나타난다는 것이 나의 믿음이다. 검색 조건으로 빈 용어.

이 나에게 무슨 일이 있었는지

: 나는 검색을했을 때 내가하려고 할 때

(Northwind 데이터베이스) 가

var mmCustomers = from c in dbi.Get<Customer>() 
         where c.ContactTitle == "Marketing Manager"      
         select c; 

가 잘 작동하지만이 :

var mmCustomers = from c in dbi.Get<Customer>()      
         select c; 

가가를 보여줍니다 "Lucene Term의 술어는 빈 문자열이 될 수 없습니다."오류가 발생합니다.

희망 하시겠습니까?