首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >的行为不是我所期望的。

的行为不是我所期望的。
EN

Stack Overflow用户
提问于 2015-04-23 10:04:16
回答 1查看 280关注 0票数 0

我一直在使用elasticsearch--分析--用日语进行搜索,但我得到了两种非常奇怪的行为,第一种行为是,我搜索的字符不能工作,比如--“輸出貿易”除非我把它作为“輸出貿易”传递给每个字符之间的空格。此外,像ント这样的字符也不会被搜索。

这是我的配置:

代码语言:javascript
复制
            .setSettings(ImmutableSettings.settingsBuilder().loadFromSource(jsonBuilder()
                    .startObject()
                    .startObject("analysis")
                            //
                    .startObject("tokenizer")
                    .startObject("kuromoji_user_dict")
                    .field("type", "kuromoji_tokenizer")
                    .field("mode", "extended")
                    .field("discard_punctuation", "false")
                    .endObject()
                    .endObject()
                            //
                    .startObject("analyzer")
                    .startObject(JAPANESE_LANGUAGE_ANALYSIS)
                    .field("type", "custom")
                    .field("tokenizer", "kuromoji_user_dict")
                    .endObject()
                    .endObject()
                            //

                    .endObject()
                    .endObject().string()));

我是配置错了,还是需要为字符设置一个不同的标记:“輸出貿易和ント”

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-04 10:06:21

经过一些在线研究和elasticsearch-analysis小组的一些帮助,我找到了问题,尽管我创建了分析师并告诉查询使用它,但我还需要像这样添加映射:

代码语言:javascript
复制
XContentBuilder xbMapping =
        jsonBuilder()
                .startObject()
                .startObject(indexType)
                .startObject("properties")
                .startObject("source")
                .field("type", "string")
                .endObject()
                .startObject("text")
                .field("type", "string")
                .field("analyzer", JAPANESE_LANGUAGE_ANALYSIS)
                .endObject()
                .endObject()
                .endObject()
                .endObject();

elasticSearchClient.admin().indices()
        .preparePutMapping(indexName)
        .setType(indexType)
        .setSource(xbMapping)
        .execute().get();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29820167

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档