用語列挙 API
用語列挙 API は、部分文字列に一致するインデックス内の用語を発見するために使用できます。サポートされているフィールドタイプは keyword
、constant_keyword
、flattened
、version
および ip
です。これはオートコンプリートに使用されます:
Python
resp = client.terms_enum(
index="stackoverflow",
field="tags",
string="kiba",
)
print(resp)
Ruby
response = client.terms_enum(
index: 'stackoverflow',
body: {
field: 'tags',
string: 'kiba'
}
)
puts response
Js
const response = await client.termsEnum({
index: "stackoverflow",
field: "tags",
string: "kiba",
});
console.log(response);
コンソール
POST stackoverflow/_terms_enum
{
"field" : "tags",
"string" : "kiba"
}
コンソール-結果
{
"_shards": {
"total": 1,
"successful": 1,
"failed": 0
},
"terms": [
"kibana"
],
"complete" : true
}
もし complete
フラグが false
の場合、返される terms
セットは不完全である可能性があり、近似値として扱うべきです。これは、リクエストのタイムアウトやノードエラーなど、いくつかの理由で発生する可能性があります。
用語列挙 API は削除されたドキュメントから用語を返すことがあります。削除されたドキュメントは最初に削除されたとしてマークされるだけです。セグメントが マージされる まで、ドキュメントは実際には削除されません。それが起こるまで、用語列挙 API はこれらのドキュメントから用語を返します。
リクエスト
GET /<target>/_terms_enum
説明
用語列挙 API は、提供された文字列で始まるインデックス内の用語を発見するために使用できます。これは、オートコンプリートシナリオで使用される低遅延の検索に設計されています。
パスパラメータ
<target>
- (必須、文字列) 検索するデータストリーム、インデックス、およびエイリアスのカンマ区切りリスト。ワイルドカードをサポートしています (
*
)。すべてのデータストリームまたはインデックスを検索するには、このパラメータを省略するか、*
または_all
を使用します。
リクエストボディ
接頭辞文字列は、Lucene の用語バイト長制限である 32766
より大きくすることはできません。
size
(オプション、整数) 一致する用語をいくつ返すか。デフォルトは 10
timeout
(オプション、時間値) 結果を収集するのにかける最大時間。デフォルトは「1s」(1秒)です。タイムアウトが超過した場合、
complete
フラグは応答で false に設定され、結果は部分的または空である可能性があります。case_insensitive
(オプション、ブール値) true の場合、提供された検索文字列はインデックス用語に対して大文字と小文字を区別せずに一致します。デフォルトは false です。
index_filter
(オプション、クエリオブジェクト 提供されたクエリが
match_none
に書き換えられる場合、インデックスシャードをフィルタリングできます。search_after
- (オプション、文字列) インデックス内の用語が返されるべき文字列。前のリクエストの最後の結果が次のリクエストの
search_after
パラメータとして渡される場合、ページネーションの形式を許可します。