term_vector
用語ベクトルは、分析プロセスによって生成された用語に関する情報を含んでいます。これには以下が含まれます:
- 用語のリスト。
- 各用語の位置(または順序)。
- 元の文字列における用語の開始および終了文字オフセット。
- ペイロード(利用可能な場合) — 各用語位置に関連付けられたユーザー定義のバイナリデータ。
これらの用語ベクトルは、特定の文書のために取得できるように保存できます。
| | |
| --- | --- |
| `````no````` | 用語ベクトルは保存されません。(デフォルト) |
| `````yes````` | フィールド内の用語のみが保存されます。 |
| `````with_positions````` | 用語と位置が保存されます。 |
| `````with_offsets````` | 用語と文字オフセットが保存されます。 |
| `````with_positions_offsets````` | 用語、位置、および文字オフセットが保存されます。 |
| `````with_positions_payloads````` | 用語、位置、およびペイロードが保存されます。 |
| `````with_positions_offsets_payloads````` | 用語、位置、オフセット、およびペイロードが保存されます。 |
高速ベクトルハイライターは`````with_positions_offsets`````を必要とします。[用語ベクトルAPI](/read/elasticsearch-8-15/5cf2fae1b45c0ba1.md)は保存されているものを取得できます。
設定`````with_positions_offsets`````は、フィールドのインデックスのサイズを2倍にします。
#### Python
``````python
resp = client.indices.create(
index="my-index-000001",
mappings={
"properties": {
"text": {
"type": "text",
"term_vector": "with_positions_offsets"
}
}
},
)
print(resp)
resp1 = client.index(
index="my-index-000001",
id="1",
document={
"text": "Quick brown fox"
},
)
print(resp1)
resp2 = client.search(
index="my-index-000001",
query={
"match": {
"text": "brown fox"
}
},
highlight={
"fields": {
"text": {}
}
},
)
print(resp2)
`
Ruby
response = client.indices.create(
index: 'my-index-000001',
body: {
mappings: {
properties: {
text: {
type: 'text',
term_vector: 'with_positions_offsets'
}
}
}
}
)
puts response
response = client.index(
index: 'my-index-000001',
id: 1,
body: {
text: 'Quick brown fox'
}
)
puts response
response = client.search(
index: 'my-index-000001',
body: {
query: {
match: {
text: 'brown fox'
}
},
highlight: {
fields: {
text: {}
}
}
}
)
puts response
Js
const response = await client.indices.create({
index: "my-index-000001",
mappings: {
properties: {
text: {
type: "text",
term_vector: "with_positions_offsets",
},
},
},
});
console.log(response);
const response1 = await client.index({
index: "my-index-000001",
id: 1,
document: {
text: "Quick brown fox",
},
});
console.log(response1);
const response2 = await client.search({
index: "my-index-000001",
query: {
match: {
text: "brown fox",
},
},
highlight: {
fields: {
text: {},
},
},
});
console.log(response2);
Console
PUT my-index-000001
{
"mappings": {
"properties": {
"text": {
"type": "text",
"term_vector": "with_positions_offsets"
}
}
}
}
PUT my-index-000001/_doc/1
{
"text": "Quick brown fox"
}
GET my-index-000001/_search
{
"query": {
"match": {
"text": "brown fox"
}
},
"highlight": {
"fields": {
"text": {}
}
}
}
高速ベクトルハイライターはtext フィールドに対してデフォルトで使用されます。用語ベクトルが有効になっているため。 |