我正在尝试初始化一个将使用空白分析器的基本索引,我只想确认我正确地执行此操作
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”。
答案 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'