ランク特徴フィールドタイプ

rank_feature フィールドは数値をインデックス化でき、後で rank_feature クエリでドキュメントをブーストするために使用できます。

Python

  1. resp = client.indices.create(
  2. index="my-index-000001",
  3. mappings={
  4. "properties": {
  5. "pagerank": {
  6. "type": "rank_feature"
  7. },
  8. "url_length": {
  9. "type": "rank_feature",
  10. "positive_score_impact": False
  11. }
  12. }
  13. },
  14. )
  15. print(resp)
  16. resp1 = client.index(
  17. index="my-index-000001",
  18. id="1",
  19. document={
  20. "pagerank": 8,
  21. "url_length": 22
  22. },
  23. )
  24. print(resp1)
  25. resp2 = client.search(
  26. index="my-index-000001",
  27. query={
  28. "rank_feature": {
  29. "field": "pagerank"
  30. }
  31. },
  32. )
  33. print(resp2)

Ruby

  1. response = client.indices.create(
  2. index: 'my-index-000001',
  3. body: {
  4. mappings: {
  5. properties: {
  6. pagerank: {
  7. type: 'rank_feature'
  8. },
  9. url_length: {
  10. type: 'rank_feature',
  11. positive_score_impact: false
  12. }
  13. }
  14. }
  15. }
  16. )
  17. puts response
  18. response = client.index(
  19. index: 'my-index-000001',
  20. id: 1,
  21. body: {
  22. pagerank: 8,
  23. url_length: 22
  24. }
  25. )
  26. puts response
  27. response = client.search(
  28. index: 'my-index-000001',
  29. body: {
  30. query: {
  31. rank_feature: {
  32. field: 'pagerank'
  33. }
  34. }
  35. }
  36. )
  37. puts response

Js

  1. const response = await client.indices.create({
  2. index: "my-index-000001",
  3. mappings: {
  4. properties: {
  5. pagerank: {
  6. type: "rank_feature",
  7. },
  8. url_length: {
  9. type: "rank_feature",
  10. positive_score_impact: false,
  11. },
  12. },
  13. },
  14. });
  15. console.log(response);
  16. const response1 = await client.index({
  17. index: "my-index-000001",
  18. id: 1,
  19. document: {
  20. pagerank: 8,
  21. url_length: 22,
  22. },
  23. });
  24. console.log(response1);
  25. const response2 = await client.search({
  26. index: "my-index-000001",
  27. query: {
  28. rank_feature: {
  29. field: "pagerank",
  30. },
  31. },
  32. });
  33. console.log(response2);

コンソール

  1. PUT my-index-000001
  2. {
  3. "mappings": {
  4. "properties": {
  5. "pagerank": {
  6. "type": "rank_feature"
  7. },
  8. "url_length": {
  9. "type": "rank_feature",
  10. "positive_score_impact": false
  11. }
  12. }
  13. }
  14. }
  15. PUT my-index-000001/_doc/1
  16. {
  17. "pagerank": 8,
  18. "url_length": 22
  19. }
  20. GET my-index-000001/_search
  21. {
  22. "query": {
  23. "rank_feature": {
  24. "field": "pagerank"
  25. }
  26. }
  27. }
ランク特徴フィールドは rank_feature フィールドタイプを使用する必要があります
スコアと負の相関を持つランク特徴はそれを宣言する必要があります

rank_feature フィールドは単一値フィールドと厳密に正の値のみをサポートします。多値フィールドと負の値は拒否されます。

rank_feature フィールドはクエリ、ソート、または集計をサポートしません。これらは rank_feature クエリ内でのみ使用できます。

rank_feature フィールドは精度のために9ビットの有効桁を保持し、これは約0.4%の相対誤差に相当します。

スコアと負の相関を持つランク特徴は positive_score_impactfalse に設定する必要があります(デフォルトは true です)。これは、rank_feature クエリによってスコアリング式を変更するために使用され、特徴の値が増加するのではなく、スコアが減少するようにします。たとえば、ウェブ検索では、URLの長さはスコアと負の相関を持つ一般的に使用される特徴です。