補完フィールドタイプ

completion suggesterを使用するには、提案を生成したいフィールドをcompletionタイプとしてマッピングします。これにより、フィールド値がインデックスされ、高速な補完が可能になります。

Python

  1. resp = client.indices.create(
  2. index="music",
  3. mappings={
  4. "properties": {
  5. "suggest": {
  6. "type": "completion"
  7. }
  8. }
  9. },
  10. )
  11. print(resp)

Ruby

  1. response = client.indices.create(
  2. index: 'music',
  3. body: {
  4. mappings: {
  5. properties: {
  6. suggest: {
  7. type: 'completion'
  8. }
  9. }
  10. }
  11. }
  12. )
  13. puts response

Js

  1. const response = await client.indices.create({
  2. index: "music",
  3. mappings: {
  4. properties: {
  5. suggest: {
  6. type: "completion",
  7. },
  8. },
  9. },
  10. });
  11. console.log(response);

コンソール

  1. PUT music
  2. {
  3. "mappings": {
  4. "properties": {
  5. "suggest": {
  6. "type": "completion"
  7. }
  8. }
  9. }
  10. }

補完フィールドのパラメータ

以下のパラメータはcompletionフィールドで受け入れられます:

analyzer 使用するインデックスアナライザー、デフォルトはsimpleです。
search_analyzer 使用する検索アナライザー、デフォルトはanalyzerの値です。
preserve_separators 区切り文字を保持し、デフォルトはtrueです。

無効にすると、foofのために提案するときにFoo Fightersで始まるフィールドを見つけることができます。
preserve_position_increments 位置のインクリメントを有効にし、デフォルトはtrueです。

無効にし、ストップワードアナライザーを使用すると、bのために提案するときにThe Beatlesで始まるフィールドを取得できます。 注意:データを豊かにすることができる場合、BeatlesThe Beatlesの2つの入力をインデックスすることでこれを達成することもできます。シンプルなアナライザーを変更する必要はありません。
max_input_length 単一入力の長さを制限し、デフォルトは50 UTF-16コードポイントです。

この制限は、基礎となるデータ構造が膨張するのを防ぐために、入力文字列ごとの総文字数を減らすためにインデックス時にのみ使用されます。ほとんどのユースケースは、接頭辞補完が数文字を超えることはまれであるため、デフォルト値の影響を受けません。