Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
向使用spring构建的索引添加自定义分析器的基础知识 - Fatal编程技术网

向使用spring构建的索引添加自定义分析器的基础知识

向使用spring构建的索引添加自定义分析器的基础知识,
Warning: implode(): Invalid arguments passed in /data/phpspider/zhask/webroot/tpl/detail.html on line 45
,,我认为这是一个非常基本的问题,但我一直在房子周围走来走去,所以如果有人帮我指出正确的方向,我将不胜感激 我继承了一个java应用程序,它使用spring数据elasticsearch(目前为1.2.1.RELEASE)构建和弹性搜索索引。我已经用各种简单的方法成功地修改了它,但是现在我想添加一个自定义分析器来在一个字段上使用(char映射来删除/) 正在构建的索引本质上是一个包含各种文档类型的索引。它看起来几乎是开箱即用的。我对java和spring还相当陌生,但跟踪所有配置和自动连接有时仍然会

我认为这是一个非常基本的问题,但我一直在房子周围走来走去,所以如果有人帮我指出正确的方向,我将不胜感激

我继承了一个java应用程序,它使用spring数据elasticsearch(目前为1.2.1.RELEASE)构建和弹性搜索索引。我已经用各种简单的方法成功地修改了它,但是现在我想添加一个自定义分析器来在一个字段上使用(char映射来删除/)

正在构建的索引本质上是一个包含各种文档类型的索引。它看起来几乎是开箱即用的。我对java和spring还相当陌生,但跟踪所有配置和自动连接有时仍然会让我感到困惑,但就我所见,上下文XML文件中的客户机配置直接指向spring代码,除了自定义索引名和存储库接口和代码的位置外,没有添加太多内容

<elasticsearch:node-client id="esClient" local="true" cluster-name="products"/>
<elasticsearch:repositories base-package="com.warehouse.es.repos"/>

<bean name="elasticsearchTemplate" class="org.springframework.data.elasticsearch.core.ElasticsearchTemplate">
    <constructor-arg name="client" ref="esClient"/>
</bean>
然后继续使用这些行的映射文件设置各种类型的映射

createTypeMapping(client, Constants.INDEX_NAME, INDEX_TYPE, "Products.mapping");
如果其中一些内容过于简短(或者对于这个基本问题来说太多华夫饼干),我深表歉意,但我正在努力找出/找到一个如何以及在何处添加自定义分析器的示例。我有文档和示例来演示如何创建一些json来创建自定义分析器 (例如。 以及之前的一些问题和建议)

但是我很难理解我在创建索引的java代码中添加了这个

显然,帮助越多越好(!),但实际上在这个阶段,我正在尝试了解是否可以将分析器添加到yml文件,或者是否需要添加一些代码以某种方式修改客户端?或者甚至可能只是将其添加到单个类型映射中


谢谢。

如果索引/类型是直接在集群上创建的(比如运行
curl
命令),或者如果索引/类型是由Spring应用程序处理的。在后一种情况下,我认为您可以从中获取一些代码示例

如果您有
Products.mapping
文件,其中的内容看起来确实像类型映射。但是,如果通过添加新的分析器更改类型映射,则集群中的所有数据都需要重新编制索引


使用海报结果编辑:将设置放在项目的各个映射文件中,但作为带有
@settings
注释的单独文件。

您有权访问ES群集本身吗?在java代码中,您是否有任何可以定义映射的*.json文件?我可以访问集群。在本例中,它被写入目标文件夹中的一个独立集群,然后我将它(在dev环境中)复制到本地es数据文件夹中。有许多.mapping文件定义类型,但没有定义更高级别的索引。也许我可以在这个类型级别添加一个custome analyzer?e、 g Products.mapping{“properties”:{“created”:{“type”:“long”},“Summary”:{“type”:“string”,“analyzer”:“standard”},“relatedProducts”:{…我试图确定的是索引/类型是否直接在集群上创建(如运行
curl
命令)或者如果索引/类型创建由您的Spring应用程序处理。在后一种情况下,我认为您可以遵循中的一些代码示例。是的,如果您有
产品。映射
,其内容看起来确实像类型映射。但是,如果您通过ad更改类型映射,则需要重新索引集群中的任何数据下载一个新的分析器。好的,太好了,我可以把它添加到类型映射文件中,剩下的由Spring来完成?!非常感谢。
createTypeMapping(client, Constants.INDEX_NAME, INDEX_TYPE, "Products.mapping");