php - 为什么我不能使用我的分析仪并得到“无法找到分析”的答案?
问题描述
我用分析器制作了我的索引,就像在文档中一样(那里)。
这是我的索引创建:
$params = [
'index' => 'mytestindex',
'body' => [
'settings' => [
'analysis' => [
'index_analyzer' => [
'my_index_analyzer' => [
'type' => 'custom',
'tokenizer' => 'standard',
'filter' => [
'lowercase',
'mynGram2'
],
],
],
'search_analyzer' => [
'my_search_analyzer' => [
'type' => 'custom',
'tokenizer' => 'standard',
'filter' => [
'standard',
'lowercase',
'mynGram2'
],
],
],
'filter' => [
'mynGram2' => [
'type' => 'nGram',
'min_gram' => 2,
'max_gram' => 20,
],
],
],
'max_ngram_diff' => 50,
],
],
];
$x = $this->obj->indices()->create($params);
然后我尝试使用我的分析器:
$params = [
'index' => 'mytestindex',
'body' => [
'analyzer' => 'my_search_analyzer',
'text' => 'текст проверить чтобы'
],
];
$x = $this->obj->indices()->analyze($params);
但我收到这条消息:
'{"error":{"root_cause":[{"type":"remote_transport_exception","reason":"[PEREGOVOR2][127.0.0.1:9300][indices:admin/analyze[s]]"}], "type":"illegal_argument_exception","reason":"未能找到分析器 [my_search_analyzer]"},"status":400}'
所以......我做错了什么?为什么我不能使用我的分析仪并得到“无法找到分析”的答案?
解决方案
您没有正确构建分析器。您的设置中只需要一个analyzer
部分:
$params = [
'index' => 'mytestindex',
'body' => [
'settings' => [
'analysis' => [
'analyzer' => [ <--- change this
'my_index_analyzer' => [
'type' => 'custom',
"tokenizer" => "standard",
'filter' => [
"lowercase",
"mynGram2"
],
],
'my_search_analyzer' => [
"type" => "custom",
"tokenizer" => "standard",
'filter' => [
"standard",
"lowercase",
"mynGram2"
],
],
],
'filter' => [
'mynGram2' => [
"type" => "nGram",
"min_gram" => 2,
"max_gram" => 20,
],
],
],
"max_ngram_diff" => "50",
],
],
];
$x = $this->obj->indices()->create($params);
推荐阅读
- wikipedia - 如何使用 Wikipedia 的搜索选项“deepcat”?
- floating-point - 在 IEEE 754 中减去不同的数字总是非零?
- linux-device-driver - 将 Linux 驱动程序与设备树节点相关联
- c# - 为什么调试包括外部库代码
- kubernetes - 将 Kubernetes 和 Weave CNI 与同一子网中的多个集群一起使用
- php - 如何解码响应不仅仅是 JSON 字符串的 JSON 响应
- operating-system - 在 64 位和 32 位操作系统中,它们有不同的结果
- java - app.trackint.getmean(trackint.java:79)的线程“main”java.lang.NullPointerException中的Java奇怪错误异常
- python - 如何在不使用 @ 语法的情况下使用“双层”装饰器?
- reactjs - 无法在点击事件上推送值