2010-12-23 4 views
2

여기 내 코드의 일부입니다. desc의 텍스트를 검색하는 대신 모든 것을 검색하고 싶습니다 (desc, title, example 등). 어떻게해야합니까? 다른 필드를 모두 호출하여 각 필드를 복사합니까? "", null 또는 "*"와 같은 것을 할 수 있습니까? (나는 각각을 시도하고 아무 결과도 얻지 않았다).전체 검색을 검색 하시겠습니까? QueryParser 사용

텍스트와 함께 모든 필드를 검색하려면 어떻게해야합니까?

public static List<Pair<long, float>> Search(string text) 
{ 
    var searcher = new IndexSearcher(directory, true); 
    var parser = new QueryParser(Lucene.Net.Util.Version.LUCENE_29, "desc", analyzer); 
    var query = parser.Parse(text); 
    var hits = searcher.Search(query); 
    // etc 
} 

답변

2

lucene이 "all"이라는 개념을 암시 적으로 지원하면 좋을 것입니다. 당신은 내용이 desc, title, example 등의 연결이 될 것이지만 그것을 저장하지 않고 단지 index 인 1 개의 추가 filed ("all"로 이름 지어 짐)를 남겨 둡니다.

+0

흠, 예, 아니오의 차이점은 무엇입니까 (압축 할 수 있습니까?). 그 옵션이 존재하는 이유를 모르겠다. –

+0

예는 데이터가 lucene에 저장되고 인덱스의 크기가 커짐을 의미한다. 인덱스 크기가 증가하면 작업을 병합/최적화하는 데 더 많은 시간이 소요됩니다. 그러나 강조 표시 기능을 원할 경우 저장해야한다고 생각합니다. 귀하의 질문에 대답 해 주시면 답변 수락 –

+0

나는 그것을 시도하고 검색 작동합니다. 그래서 그것을 저장하는 것이 강조하는 데 도움이됩니까? 나는 강조하는 것을 들어 본 적이 없다. 그래서 나는 정말로이 들판을 저장할 필요가 없다. 나는 그것을 바꿀 것이고 어떤 일이 일어날지를 볼 것이다. BTW 거의 모든이 데이터는 또한 내 MySQL 데이터베이스에 있습니다. 난 검색을 위해 엄격하게 사용합니다 –

관련 문제