私はElasticSearchを初めて使用し、現在その機能を調査しています。私が興味を持っているものの1つは、Fuzzy Queryです。これは、テストしていて、使用するのに問題があります。これはおそらくダミーの質問なので、すでにこの機能を使用している人ならすぐに答えが見つかると思います。少なくとも私は願っています。:)
ところで、 ElasticSearchだけでなく、 Luceneに直接関係しているのではないかと感じています。
まず、「first index」という名前の新しいインデックスから始めましょう。このインデックスには、値が「americanfootball」のオブジェクト「label」が格納されています。これは私が使用するクエリです。
bash-3.2$ curl -XPOST 'http://localhost:9200/firstindex/node/?pretty=true' -d '{
"node" : {
"label" : "american football"
}
}
'
これが私が得た結果です。
{
"ok" : true,
"_index" : "firstindex",
"_type" : "node",
"_id" : "6TXNrLSESYepXPpFWjpl1A",
"_version" : 1
}
これまでのところ、ファジークエリを使用してこのエントリを検索したいと思います。これは私が送るものです:
bash-3.2$ curl -XGET 'http://localhost:9200/firstindex/node/_search?pretty=true' -d '{
"query" : {
"fuzzy" : {
"label" : {
"value" : "american football",
"boost" : 1.0,
"min_similarity" : 0.0,
"prefix_length" : 0
}
}
}
}
'
そしてこれが私が得た結果です
{
"took" : 15,
"timed_out" : false,
"_shards" : {
"total" : 5,
"successful" : 5,
"failed" : 0
},
"hits" : {
"total" : 0,
"max_score" : null,
"hits" : [ ]
}
}
ご覧のとおり、ヒットはありません。しかし、今、クエリの値を「アメリカンフットボール」から「アメリカンフットボール」に少し縮小すると、次のようになります。
bash-3.2$ curl -XGET 'http://localhost:9200/firstindex/node/_search?pretty=true' -d ' {
"query" : {
"fuzzy" : {
"label" : {
"value" : "american footb",
"boost" : 1.0,
"min_similarity" : 0.0,
"prefix_length" : 0
}
}
}
}
'
次に、エントリで正しいヒットを取得します。したがって、結果は次のようになります。
{
"took" : 0,
"timed_out" : false,
"_shards" : {
"total" : 5,
"successful" : 5,
"failed" : 0
},
"hits" : {
"total" : 1,
"max_score" : 0.19178301,
"hits" : [ {
"_index" : "firstindex",
"_type" : "node",
"_id" : "6TXNrLSESYepXPpFWjpl1A",
"_score" : 0.19178301, "_source" : {
"node" : {
"label" : "american football"
}
}
} ]
}
}
したがって、このテストに関連するいくつかの質問があります。
値を使用してクエリを実行しても結果が得られなかった理由は、私の唯一のエントリ「アメリカンフットボール」と完全に同じです。
それは私が複数の単語の価値を持っているという事実に関連していますか?
クエリ結果の「類似性」スコアを取得して、ファジークエリの適切なしきい値を見つける方法をよりよく理解できるようにする方法はありますか?
ElasticSearch Webサイトにファジークエリ専用のページがありますが、ファジークエリに使用できるすべての潜在的なパラメーターがリストされているかどうかはわかりません。そのような網羅的なリストを見つけることができましたか?
実際に他のクエリについても同じ質問です。
あいまい一致を取得するためにlucene構文を使用するあいまいクエリとクエリ文字列クエリの間に違いはありますか?