類似性

Elasticsearchでは、フィールドごとにテキストスコアリングアルゴリズムまたは類似性を設定できます。similarity設定は、デフォルトのBM25以外のテキスト類似性アルゴリズムを選択するための簡単な方法を提供します。例えば、booleanのようなものです。

テキストベースのフィールドタイプ、例えば text および keyword のみがこの設定をサポートします。

カスタム類似性は、組み込みの類似性のパラメータを調整することで設定できます。この専門的なオプションの詳細については、類似性モジュールを参照してください。

追加の設定なしでそのまま使用できる類似性は次のとおりです:

  • BM25
  • Okapi BM25アルゴリズム。ElasticsearchおよびLuceneでデフォルトで使用されるアルゴリズムです。
  • boolean
  • フルテキストランキングが必要ない場合に使用されるシンプルなブール類似性で、スコアはクエリ用語が一致するかどうかのみに基づきます。ブール類似性は、用語にそのクエリブーストと等しいスコアを与えます。
  1. #### Python
  2. ``````python
  3. resp = client.indices.create(
  4. index="my-index-000001",
  5. mappings={
  6. "properties": {
  7. "default_field": {
  8. "type": "text"
  9. },
  10. "boolean_sim_field": {
  11. "type": "text",
  12. "similarity": "boolean"
  13. }
  14. }
  15. },
  16. )
  17. print(resp)
  18. `

Ruby

  1. response = client.indices.create(
  2. index: 'my-index-000001',
  3. body: {
  4. mappings: {
  5. properties: {
  6. default_field: {
  7. type: 'text'
  8. },
  9. boolean_sim_field: {
  10. type: 'text',
  11. similarity: 'boolean'
  12. }
  13. }
  14. }
  15. }
  16. )
  17. puts response

Js

  1. const response = await client.indices.create({
  2. index: "my-index-000001",
  3. mappings: {
  4. properties: {
  5. default_field: {
  6. type: "text",
  7. },
  8. boolean_sim_field: {
  9. type: "text",
  10. similarity: "boolean",
  11. },
  12. },
  13. },
  14. });
  15. console.log(response);

コンソール

  1. PUT my-index-000001
  2. {
  3. "mappings": {
  4. "properties": {
  5. "default_field": {
  6. "type": "text"
  7. },
  8. "boolean_sim_field": {
  9. "type": "text",
  10. "similarity": "boolean"
  11. }
  12. }
  13. }
  14. }
default_fieldBM25類似性を使用します。
boolean_sim_fieldboolean類似性を使用します。