좋아요, Sense in Chrome에서는 쿼리가 완벽하게 작동합니다. 따라서 접두사 - 나는 최근에 추가 된 항목에 우선 순위를 부여하고 "입력 할 때 제안을"지원 인덱스 "이름"ES에서 사용자 지정 유형의 특성에 맞게 짧은에서NEST FunctionScore()는 함수를 추가하기 전에 인덱싱 된 모든 항목을 반환하고 예외를 추가 한 후 예외를 throw합니다.
{
"size":127,
"query": {
"function_score": {
"query": {
"bool": {
"must": [
{
"prefix": {
"name": {
"value": "incomp"
}
}
},
{
"match": {
"name": "a word that is"
}
}
]
}
},
"functions": [
{
"exp": {
"date": {
"origin": "now/d",
"scale": "3w",
"offset": "10d",
"decay": "0.88"
}
}
}
]
}
}
}
: 나는 다음과 같은 쿼리를 사용 질문. 그것은 완벽하게 잘 작동하고, 그대로 조정되므로 다음 단계는 NEST에서 재생산하는 것입니다.
그러나, 나는 아래의 .NET NEST 코드와 함께 몇 가지 문제에 직면하고 있습니다 :
var results4 = _client.Search<customDataType>(
s => s.Size(5030)
.Query(q => q
.FunctionScore(fs => fs
.Name("another_named_query")
.BoostMode(FunctionBoostMode.Multiply)
.ScoreMode(FunctionScoreMode.Multiply)
.Query(qu => qu
.Bool(b => b
.Must(m => m
.Prefix(p => p
.Field(ff => ff.Name)
.Value(prefixVal)))
.Must(m2 => m2
.Match(mh => mh
.Field(f2 => f2.Name)
.Query(stringBeforePrefixVal)))))
/*.Functions(fcs => fcs.ExponentialDate(
exp => exp
.Origin(DateMath.Now)
.Scale(new Time(1814400000))
.Offset(new Time(864000000))
.Decay(0.88d))
)*/)));
내가 알아낼 수없는 이유 "FunctionScore"방법의 결과를 사용하려는 모든 시도 무엇에 MatchAll() 그러면 모든 레코드가 반환됩니다.
한편 위에서 언급 한 함수를 추가 할 때 C : \ code \ elasticsearch-net \ src \ Nest \ CommonAbstractions \ Infer의 Nest.FieldResolver.Resolve (필드 필드)에서 NullReference 내부 예외가있는 UnexpectedElasticsearchClientException이 발생합니다. \ Field \ FieldResolver.cs : line 31.
나는이 모든 것에 대해 당혹스럽고, 내가 출발점으로 사용할 수있는 비슷한 문제가없는 것 같습니다. 위의 쿼리를 실행하기 위해 할 수있는 일이 있습니까? 아니면 수동으로 편안한 API 호출을해야합니까?
고마워요! 나는 아주 작은 것을 찾고있는 나이를 보냈다 : ( – nikovn
아무런 문제도 도와주지 않았다. :) –