1
PageDocument
を除いて、タイトルに基づいて検索したいものがいくつかあります。このフィールドは分析されます。私はスペルミスのユーザーを助けるために曖昧さをほしいと思う。私はsome
がsome text
とthis is some text
と一致するので、部分一致を行うことができる必要があります。私は次のクエリを使用している場合弾性検索結果が正確に一致してから最初に一致する
私は
{
"size": 20,
"query": {
"bool": {
"must": [
{
"match": {
"title": {
"query": "myterm",
"fuzziness": 1
}
}
}
],
"must_not": [
{
"wildcard": {
"path": {
"value": "/test/*"
}
}
}
]
}
}
}
だから、私はtitle.not_analyzed
としようとした時にタイトルフィールドのnot_analyzed
バージョンを追加しましたので、TF-IDFの最初の結果としてバック完全一致を得ることはありませんterm
を使用して完全一致の重み付けを増やすために関数スコアを追加する。
{
"query": {
"function_score": {
"functions": [
{
"weight": 2,
"filter": {
"fquery": {
"query": {
"term": {
"title.not_analyzed": {
"value": "myterm"
}
}
}
}
}
}
],
"query": {
"bool": {
"must": [
{
"match": {
"title": {
"query": "myterm",
"fuzziness": 1
}
}
}
],
"must_not": [
{
"wildcard": {
"path": {
"value": "/path/*"
}
}
}
]
}
},
"boost_mode": "multiply"
}
}
}
しかし、これは私にも同じ結果をもたらします。最初に返された正確な一致を取得するにはどうすればよいですか?