2017-11-29 3 views
0

NEST를 사용하여 Elasticsearch 용 작은 유틸리티를 작성했으며 Elastic API에 대한 이전 경험이 없습니다. 내 연구를 시도했지만 몇 줄의 간단한 코드를 발견하고 어떻게 작동하는지 이해할 수 없습니다.모든 사용 가능한 개체를 통한 NEST 검색

내가 원하는 일 : 특정 필드 값을 가진 개체를 찾으십시오. 예를 들어, 나는 Quick Start Guide

public class Person 
    { 
     public int Id { get; set; } 
     public string FirstName { get; set; } 
     public string LastName { get; set; } 
     public string FavoriteColor {get; set; } 
     public string TimeAdded {get; set; } 
    } 

나는 인덱스 people_dd_mm_yyy가에서 Person 클래스를 수정 할게요, 그래서 매일 업데이트하기 때문에 나는 기본 인덱스를 설정할 수 없습니다.

사람들이 색인에 포함될 것이라는 생각도 하나도 없으므로 오늘 추가 된 사람들과 빨간색을 좋아하는 모든 사람들을 살펴보고 싶습니다.

 var p = new Person(); 
     var indexResponse = client.Index(p,s => s.Index("people_*")); 
     var search = client.Search<Person>(s => s 
     .From(0) 
     .Size(10) 
     .Query(q => q 
     .Match(m => m 
     .Field(f => f.FavoriteColor) 
     .Query("Red")))); 

검색 문서에서 모든 입력란이 비어 있기 때문에 검색 결과가 없습니다. 콘텐츠에 관계없이 모든 개체의 색인을 생성하는 방법은 무엇입니까? 좋아, 내가 어떻게 탄성이 응답을 기입해야합니까, 내가 모든 개체 FavoriteColor = Red 갖고 싶어 알고, 그래서

var p = new Person() { FavoriteColor = "Red"}; 

를 쓸 수 있지만 다른 어떤 분야가 될 것입니다 아무 생각이 없다?

나는 탄성과 색인 엔진에 대한 아이디어를 이해할 수 없다.

나는 body search을 시도하고 있다고 생각하지만 github에 대한이 요청의 예는 내가 검색하고 싶은 대상에 관한 모든 것을 알고 있어야합니다. 여러 indexces에서 검색 할 경우에는의 즐겨 찾기 색이고 모든 사람을 찾는 데 관심이 있다면

답변

2

첫째, 당신은 둘째

client.Search<Person>(s => s 
     .Index("people_*")... 

(이 위대한 post을 확인)와 같은 쿼리에 지정해야 빨강, 나는 경기 대신 용어를 사용합니다. Term은 Red에서 필터링을 수행하고 Match는 전체 텍스트 검색을 수행하고 Red in fields에서 항목을 찾습니다. 나는 이것을 가능한 한 쉽게 설명 할 것이고 Match가 SQL "LIKE"이고 Term이 SQL "="인 SQL과 비교할 것입니다. 큰 문서에서는 용어가 가장 빠른 대안 일 가능성이 큽니다.

제안 된 해결책 :

var search = client.Search<Person>(s => s 
     .Index("people_*") 
     .From(0) 
     .Size(10) 
     .Term(q => q 
     .Field(p => p.FavoriteColor) 
     .Value("Red"))); 
+1

도 keyword' '데이터 유형'으로 –

+0

흠 FavoriteColor' 매핑, I 이상한 일부 이유로, 라이브러리 내에 용어()이 없다. 또한, 나는 Kibana devtool 창에서 비슷한 것을 쓰고 싶었고, 수동 JSON 요청 만 작성했다. 아직 어떤 결과도 얻지 못했고, 내 인덱스와 객체를 나타내는 방법에 문제가있는 것 같다. NEST 라이브러리 용법 – Semant1ka

관련 문제