0

カスタム フィルター スコア クエリを使用していますが、「用語」フィルターで宣言されたブーストが無視されています。無視されない唯一のスコアは、「存在する」フィルターの「スクリプト」スコアです。問題を見つけるためにドキュメントを何度も確認しましたが、成功しませんでした。

これが実際のクエリです。

{
  'from': 0,
  'query': {
    'custom_filters_score': {
      'filters': [
        {
          'filter': {
            'exists': {
              'field': 'tweet_article_poster'
            }
          },
          'script': "doc['actual_rank'].value/5000.0 + 1.0"
        },
        {
          'boost': '1.3',
          'filter': {
            'terms': {
              'entities.text': [
                'Google',
                'Twitter',
                'Obama',
                'NFL'
              ]
            }
          }
        },
        {
          'boost': '1.3',
          'filter': {
            'terms': {
              'category': [
                'Sports',
                'Politics',
                'Technology_Internet'
              ]
            }
          }
        },
        {
          'boost': '2',
          'filter': {
            'terms': {
              'tweet_article_poster': [
                'JoeGumby1',
                'BBCSport',
                'EyeOnNFL',
                'MadeOfWWEAndHTC'
              ]
            }
          }
        }
      ],
      'query': {
        'bool': {
          'must': {
            'range': {
              'added': {
                'from': '2013-10-27T00:00:00'
              }
            }
          },
          'must_not': {
            'term': {
              'show': 'false'
            }
          }
        }
      },
      'score_mode': 'multiply'
    }
  },
  'si

ze': 20 }

4

1 に答える 1

0

用語フィルターが何にも一致しないため、ブーストが適用されていないと思います。これはおそらく、tweet_article_postercategory、およびentities.textフィールドがインデックス作成中に「分析」されて小文字に変換されるために発生しますが、用語フィルターは分析を実行せず、そのまま用語を検索しようとします。

于 2013-10-28T20:04:48.067 に答える