使用'whitespace'分析器创建索引

时间:2014-02-03 16:32:39

标签: lucene indexing elasticsearch

我正在尝试初始化一个将使用空白分析器的基本索引,我只想确认我正确地执行此操作

curl -XPUT localhost:9200/test -d '{
"settings" : {
  "index" : {
    "analysis": {
      "analyzer": {
        "whitespace": {
          "type": "whitespace",
          "tokenizer": "whitespace"
        }
      }
    }
  }
}
}'

当我这样做时,我得到了

{"ok":true,"acknowledged":true}

但如果我转到http://localhost:9200/_plugin/head/并在操作下拉列表中选择测试分析器并选择文本“这是一个测试”,它只是返回一个标记“test”。

1 个答案:

答案 0 :(得分:2)

直接分析仪测试将默认为标准分析仪。而是编写一个custom_analyzer并使用analyze api在索引上测试它。您编写的分析仪不是自定义分析仪或默认分析仪。您也可以将分析仪设置为默认分析仪。

将空白分析器设置为默认分析器:

curl -XPUT localhost:9200/test -d '{
"settings" : {
  "index" : {
    "analysis": {
      "analyzer": {
        "default": {
          "type": "whitespace",
          "tokenizer": "whitespace"
        }
      }
    }
  }
}
}'

将空白分析器设置为自定义分析器:

curl -XPUT localhost:9200/test -d '{
"settings" : {
  "index" : {
    "analysis": {
      "analyzer": {
        "myAnalyzer": {
          "type": "custom",
          "tokenizer": "whitespace"
        }
      }
    }
  }
}
}'

如何测试它们?

在特定索引上测试默认分析器:

curl -XGET 'localhost:9200/test/_analyze?text=this+is+a+test'

在特定索引上测试自定义分析器:

curl -XGET 'localhost:9200/test/_analyze?analyzer=myAnalyzer' -d 'this is a test'