使用停用词的Elasticsearch聚合字数

时间:2015-10-05 09:00:28

标签: elasticsearch aggregation word-count stop-words

我使用elasticsearch来存储我的数据。我想数一下我文件中的字数。但我希望看到没有停用词的结果。例如;在我目前的结果中,我看到'和'是我的首要任务。但我想删除它。目前我的stopword.txt中有3802个停用词。我不希望它们中的任何一个显示在聚合结果中。我怎样才能做到这一点?我当前的查询;

    {
      "query": {
        "bool": {
          "must": [
            {
              "range": {
                "date": {
                  "gte": "now-0d/d"
                }
              }
            }
          ]
        }
      },
      "aggs": {
        "words": {
          "terms": {
            "size" : 0,
            "field": "text"
          }
        }
      }
    }

我希望查询工作的方式是;

    {
      "aggs": {
        "filtered": {
          "query": {
            "bool": {
              "must": [
                {
                  "range": {
                    "date": {
                      "gte": "now-0d/d"
                    }
                  }
                }
              ]
            }
          },
          "filter": {
            "my_stop": {
              "type": "stop",
              "stopwords_path": "/work/projects/stop_words.txt"
            }
          },
        "aggs": {
          "words": {
            "terms": {
              "size" : 0,
              "field": "text"
            }
          }
        }
      }
    }
  }

顺便说一下,我的自定义分析器中有我的停用词列表。但它没有按照我想要的方式工作。

0 个答案:

没有答案