在我的elasticsearch.yml文件中我试图实现一些映射,其中属于一种类型的一个字段使用不同的分析器索引到其余的.
目前yaml文件具有以下结构:
index:
bookshelf:
types:
book:
mappings:
title: {analyzer: customAnalyzer}
analysis:
analyzer:
# set standard analyzer with no stop words as the default
default:
type: standard
stopwords: _none_
# set custom analyser to provide relative search results
customAnalyzer:
type: custom
tokenizer: nGramTokenizer
filter: [lowercase,stopWordsFilter,asciifolding]
tokenizer:
nGramTokenizer:
type: nGram
min_gram: 1
max_gram: 2
filter:
nGramFilter:
type: nGram
min_gram: 1
max_gram: 2
stopWordsFilter:
type: stop
stopwords: _none_
Run Code Online (Sandbox Code Playgroud)
这不会将自定义分析器应用于标题字段,所以我希望有人能够指出我将自定义分析器应用于各个字段的正确方向?
我在ml中回答了这个问题:
如果您使用的是Java,则不必使用yml文件.你可以,但你不必.
如果您使用的是Spring,可以查看ES spring工厂项目:https: //github.com/dadoonet/spring-elasticsearch
如果没有,有不同的方法在Java中创建索引和映射:
您可以通过阅读json映射文件来查看我是如何做到这一点的:https: //github.com/dadoonet/spring-elasticsearch/blob/master/src/main/java/fr/pilato/spring /elasticsearch/ElasticsearchAbstractClientFactoryBean.java#L616
您还可以使用ES提供的XContent对象在Java中构建映射:https: //github.com/dadoonet/rssriver/blob/master/src/test/java/org/elasticsearch/river/rss/RssRiverTest.java# L14
此处描述了使用此对象:https: //github.com/dadoonet/rssriver/blob/master/src/test/java/org/elasticsearch/river/rss/AbstractRssRiverTest.java#L98
添加映射如下:
node .client() .admin () .indices()
.preparePutMapping ("yourindex" )
.setType ( "yourtype" )
.setSource ( mapping ())
.execute() .actionGet ();
Run Code Online (Sandbox Code Playgroud)
我希望这可以帮到你
| 归档时间: |
|
| 查看次数: |
2884 次 |
| 最近记录: |