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

泽': 20 }

4

1 回答 1

0

我猜想提升没有得到应用,因​​为您的条款过滤器不匹配任何内容。这可能是因为tweet_article_poster,categoryentities.text字段在索引期间被“分析”并因此转换为小写,而术语过滤器不执行分析并尝试按原样查找术语。

于 2013-10-28T20:04:48.067 回答