过滤查询以下映射

时间:2016-11-29 08:21:03

标签: java performance elasticsearch

我已经创建了弹性搜索映射,如下所示。

 PUT indexcloud  

  {
      "mappings": {
        "_default_": {
          "_all": {
            "enabled": false
          },
          "_source": {
            "compressed": true
          },
          "properties": {
            "term": {
              "fields": {
                "raw": {
                  "index": "not_analyzed",
                  "analyzer": "lowercase_analyzer",
                  "type": "string"
                }
              },
              "analyzer": "concat_all_alpha",
              "type": "string"
            },
            "relation": {
            "type": "nested",
              "properties": {
                "term": {
                  "type": "string",
                  "analyzer": "concat_all_alpha",
                  "fields": {
                    "raw": {
                      "index": "not_analyzed",
                      "analyzer": "lowercase_analyzer",
                      "type": "string"
                    }
                  }
                }

              }
            }


          }
        }
      },
      "settings": {
        "index": {
          "analysis": {
            "analyzer": {
              "concat_all_alpha": {
                "char_filter": [
                  "only_alphanum"
                ],
                "filter": [
                  "lowercase"
                ],
                "tokenizer": "keyword"
              },
              "uppercase_analyzer": {
                "filter": "uppercase",
                "tokenizer": "keyword"
              },
              "lowercase_analyzer": {
                "filter": "lowercase",
                "tokenizer": "keyword"
              }
            },
            "char_filter": {
              "only_alphanum": {
                "pattern": "[^A-Z^a-z^0-9]|\\^",
                "replacement": "",
                "type": "pattern_replace"
              }
            }
          },
          "max_result_window": "1000000"
        }
      }
    }

示例索引文档

POST indexcloud/skill 
{"term":"Java Language","relation":[{"term":"java8"},{"term":"struct"},{"term":"j2ee"},{"term":"Progamming Language"}]}

我想使用过滤查询进行搜索,如下所示

GET indexcloud/_search
{
    "query" : {
        "constant_score" : { 
            "filter" : {
                "term" : { 
                    "term" : "Java Language"
                }
            }
        }
    }
}

但这不起作用。我怎样才能做到这一点?注意:我不想在下面

GET indexcloud/_search
{
    "query" : {
        "constant_score" : { 
            "filter" : {
                "term" : { 
                    "term" : "javalanguage"
                }
            }
        }
    }
}

因为我想搜索,我的索引方式。

0 个答案:

没有答案