嗨我正在开发使用弹性搜索的迷你应用程序。是否有任何选项可停止应用分析仪?
环境: -
settingBuilder = XContentFactory.jsonBuilder().startObject()
.startObject("index")
.startObject("analysis")
.startObject("analyzer")
.startObject("custom_analyzer")
.field("type", "custom")
.field("tokenizer","keyword")
.field("filter", new String[]{"standard","ngram_filters"})
.endObject()
.endObject()
.startObject("filter")
.startObject("ngram_filters")
.field("type", "nGram")
.field("min_gram", "1")
.field("max_gram","10")
.endObject()
.endObject()
.endObject()
.endObject()
.endObject();
映射: -
contentBuilder = XContentFactory.jsonBuilder().startObject()
.startObject("students")
.startObject("properties")
.startObject("searchColumn")
.field("analyzer", "custom_analyzer")
.field("type", "string")
.endObject()
.startObject("firstName")
.field("type","string")
.field("analyzer", "custom_analyzer")
.field("store", "yes")
.endObject()
.startObject("lastName")
.field("type","string")
.field("analyzer", "custom_analyzer")
.field("store", "yes")
.endObject()
.startObject("registerNumber")
.field("type", "long")
.field("analyzer", "custom_analyzer")
.field("store", "yes")
.endObject()
.endObject()
.endObject()
.endObject();
在这里,我指定NGRAM滤波器。但由于某种原因,在做搜索过程中,我不想将分析器应用于prefixFilter或prefixQuery。有没有任何选择。 我在这里面临的问题是,
例如。
apple
one apple
two apple
假设这些是来自example的firstName值。 当我搜索字符'a'的前缀时,我必须只想获得'apple'文档。但现在,我得到所有的结果,因为nGram ...你可以请任何解决方案吗?
你能否阐明答案是否有用或完全关闭? :) – javanna