我正在开发一个ES插件,其中包含一个新的分析器和一个新的过滤器。我的elasticsearch。yml文件如下-:
index:
analysis:
analyzer:
ik_syno:
tokenizer: ik
filter: [my_synonym_filter_ik]
ik_syno_smart:
tokenizer: ik_smart
filter: [my_synonym_filter_ik_smart]
filter:
my_synonym_filter_ik_smart:
type: org.elasticsearch.index.analysis.SynonymcnTokenFilterFactory
use_smart: true
my_synonym_filter_ik:
type: org.elasticsearch.index.analysis.SynonymcnTokenFilterFactory
use_smart: true
同义词tokenfilterfactory是我的班级。
现在,当我使用
http://127.0.0.1:9200/newshuoshuo/_analyze?analyzer=ik_syno_smart
分析仪“ik\u syno\u smart”按预期工作。
{
"tokens" : [ {
"token" : "hello",
"start_offset" : 1,
"end_offset" : 6,
"type" : "ENGLISH",
"position" : 1
} ]
}
但当我在映射调用中使用它时,它返回错误。
这是我的索引字段
"content": {
"type": "string",
"index_analyzer": "ik_syno_smart",
"search_analyzer": "ik_smart",
"boost": "10"
},
错误日志如下:
on [shard failure [failed to update mappings][MapperParsingException[Analyzer [ik_syno_smart] not found for field [content]]]]
我做错了什么?我的ES版本是1.7.0。
您必须始终在所有机器上安装插件,否则ES将无法完成其工作,因为当索引被拆分到多台机器时,它们负责工作。此外,如果你正在使用许多插件,那么在elasticsearch中。yml有一处不错的房产
plugin.mandatory: mapper-attachments,lang-groovy
在安装所有插件之前,这不会启动ES。不幸的是,它还不能自动设置它们,但它会阻止一些你可能忘记的事情
我试图让我的Elasticsearch索引使用Porter词干算法,但当我使用analyzeendpoint进行测试时,我的自定义分析器没有定义。 我已经查看了ES留档和SO上的类似问题,但我不确定问题是什么。我尝试在创建索引时对设置使用单独的PUT请求,但没有效果。 这是我创建映射的方式: 这是从映射创建索引的函数。 这是我查询设置时得到的全部信息: 我只需要这两个字段来使用令牌过滤器。
我的NEST代码用于Elasticsearch版本6,在Elastichsearch版本7中抛出以下错误: 无法分析映射[_doc]:根映射定义包含不支持的参数: 我见过这个问题,它解释了ES 7中不推荐的映射类型。。。我不确定这是否是我的问题?如何解决这个问题? 这是我生成索引的代码: 这是我的文档 以下是Elasticsearch的响应(错误):
我想将字段类型从“string”更改为“date”(具体格式为“epoch\u second”)。由于无法更新现有索引的映射,因此我需要创建一个新索引,我最想使用现有索引的映射。以下是我正在使用的内容: Curl-XGET'http://localhost:9200/sam/saga/_mapping?pretty' 要将当前索引的映射转储到json文件中,其内容如下: 然后我替换 具有 并将新文
问题内容: 在我的系统中,数据插入始终是通过logstash通过csv文件完成的。我从未预定义映射。但每当我输入它总是被一个字符串是,其结果就像一个条目被分为,,,。无论如何,我是否可以更改elasticsearch的默认/动态映射,以便所有字符串(无论索引如何,无论类型如何)都被视为?还是有一种在文件中设置它的方法?说我的档案看起来像 我希望所有的字符串都是这样,我也不介意将其作为所有将来的数据
问题内容: 我想对如何处理以下情况有清楚的了解: 我正在从activerecord模型中添加或删除属性,所以我想在生产中的ElasticSearch中更新其映射。 据我了解,我应该… 1-创建一个新索引并从mysql导入所有内容 这是正确的命令吗? 为了创建正确的映射,我应该已经在模型中更新了映射,对吗? 2-删除旧的映射并创建一个别名为 我会那样做,对吗? 3-重启应用 我是否缺少某些东西,或者
问题内容: 我是Elasticsearch的新手,目前正在实现用于搜索的过滤器。到目前为止,我的索引具有以下映射(我已经删除了一些字段): geo_distance字段将在location字段上实现,示例实例如下所示: 即采用geoJSON格式。 我了解我将必须更新索引,以使location字段的类型为,如文档(mapping-geo- point )中所述。似乎我必须删除索引并创建一个新索引,但