나는이 JSON 쿼리에 대한 NEST 동등한를 만들려면 :NEST의 내부 배열에 대한 MoreLiThis 쿼리를 만드는 방법은 무엇입니까?
{
"query": {
"more_like_this" : {
"fields" : ["storages.items"],
"like" : ["a","b"],
"min_term_freq": 1,
"min_doc_freq": 1
}
}
}
내 모델은 다음과 같습니다
public class Data
{
public string Name { get; set; }
public InnerStorage[] Storages { get; set; }
}
public class InnerStorage
{
public string[] Items { get; set; }
}
그리고 문제는 내가 MoreLikeThis 매개 변수에 문자열 배열을 전달하는 방법을 찾을 수 있다는 것입니다. 내가 만들 수 있습니다
LikeDescriptor가있는 경우에만
Text(string likeText)
및
Document(Func<LikeDocumentDescriptor<T>, ILikeDocument> selector)
만 요청
var data =
client.Search<Data>(
x =>
x.Query(
q =>
q.MoreLikeThis(
s =>
s.Fields(Field.Create("storages.items"))
.Like(sel => sel.Document(d => d.Document(
new Data(){Storages =new[]{new InnerStorage(){Items = new[] {"a", "b"}}}}
))))));
같은 그것은 전체 데이터 문서를 포함하고있다 (하지만 난 단지 전달하려는 문자열 (Items) 배열)을 찾고 잘못된 요청을 생성합니다.
,"like": [{
"_index": null,
"_type": "data",
"doc": {
"storages": [{
"items": ["a", "b"]
}]
}
}]
NEST의 어떤 버전을 사용하십니까? – Rob
@Rob NEST 2.4.1 – pil0t