2014-12-08 4 views
1

MatchPhrasePrefix로 색인의 문서를 검색하는 방법을 알 수 없습니다. 전체 검색어 구문에 대해 일치시키고 싶지만 마지막 용어에 접두어를 사용할 수 있습니다.NEST Elastic Search의 MatchPhrasePrefix

이 LINQ 구성으로 인해 점수 1.0으로 모든 것이 다시 제공됩니다. 이걸 어떻게 만들까요? 참고로 NEST가 생성하는 원시 쿼리를 볼 수 있습니까? 그것은 매우 도움이 될 것입니다!

var search = new SearchDescriptor<ObservationElasticModel>(); 
     search = search 
      .Query(q => q.MatchPhrase(m => m.Query(term))); 
    var response = _client.Search<ObservationElasticModel>(search); 

답변

3

당신은 QueryDescriptorMatchPhrasePrefix 방법을 사용할 수 있습니다. 연산자를 AND로 설정해야 할 수도 있습니다.

_client.Search<ObservationElasticModel>(s => s 
    .Query(q => q 
     .MatchPhrasePrefix(m => m 
      .Operator(Operator.And) 
      .Query(term))); 

당신은 EnableTrace()ExposeRawResponse() 설정시 ConnectionSettings 인스턴스에를 호출하여 디버깅 콘솔에 원시 쿼리를 로그인 할 수 있습니다.

var settings = new ConnectionSettings(new Uri(searchUri)); 
settings.EnableTrace(); 
settings.ExposeRawResponse(); 
_client = new ElasticClient(settings); 
관련 문제