2017-12-07 18 views
0

내가 지금처럼 ConnectionSettings 객체를 구성하고 있습니다 :Elasticsearch 아이디 추론 5.x를

ConnectionSettings = new ConnectionSettings(settings.EndPointUrl) 
    .DefaultIndex("myindex") 
    .BasicAuthentication(settings.Username, settings.Password) 
    .PrettyJson() 
    .InferMappingFor<MyObject>(l => l 
     .IdProperty(p => p.UserId) 
    ); 

나는 인덱스 MyObject, 그것은 InferMappingFor 설정을 존중하지 않습니다. 어떤 생각이 왜 InferMappingFor

var response = Elasticsearch.Client.Index(model, i => i 
    .Id(model.UserId) 
); 

을 작동하지 않는 : 나는 명시 적으로 Id 필드를 설정과 같이 인덱스 하나의 객체로 했어? 내가 놓친 게 있니?

+1

'Elasticsearch.Client'는 위에 정의 된'ConnectionSettings'을 사용합니까? NEST 5.x를 사용합니까? – Rob

답변

0

InferMapping을 사용하는 대신 MyObject 클래스에서 속성 장식을 사용해야합니다. 예 :

+0

나는 그렇게 할 능력이 없습니다. 우리 모델은 별도의 프로젝트에 포함되어 있으므로 ES에 대한 종속성이 모델 프로젝트를 참조하는 다른 프로젝트로 전파되므로 해당 프로젝트가 ES에 종속되지 않도록해야합니다. – Namrehs

+0

나는 이것이 당신의 질문에 정말로 대답하지 않는다는 것을 알고 있지만, 그 모델이 올바른 프로젝트에 있는지에 대해 생각하고 있는지 확인하십시오. 이 모델은 도메인 모델로 공유되지 않고 ElasticSearch에서 소유해야합니다. 다른 프로젝트에서 ES 의존성을 원하지 않는 것이 맞습니다. – jhilden