小编nik*_*agi的帖子

在elasticSearch中查询时定义分析器

我对弹性搜索很新,只需要澄清一下:我们可以在查询搜索服务器时定义一个分析器.我用"文本"和"字段"查询尝试了它,它工作正常:

查询:

curl -XPOST http://localhost:9200/test/user/_search? -d '{ "query" : {
"text" : {"_all" : {"query" :"Vaibhav","analyzer" :
"lowercase_keyword" }} } }'
Run Code Online (Sandbox Code Playgroud)

结果:

{"took":144,"timed_out":false,"_shards":{"total":5,"successful":5,"failed":0},"hits":{"total":1,"max_score":0.10848885,"hits":{"_index":"test","_type":"user","_id":"1","_score":0.10848885,
"_source" : {
   "first_name": "Vaibhav",
   "last_name":"saini",
   "password":"pwd"
Run Code Online (Sandbox Code Playgroud)

但是当我尝试用term/prefix/wildcard查询做同样的事情时,我得到了异常:

查询:

curl -XPOST http://localhost:9200/test/user/_search? -d '{
"query" : { "term" : {"_all" : {"query" :"Vaibhav","analyzer" :
"lowercase_keyword" }} } }'
Run Code Online (Sandbox Code Playgroud)

结果:

{"error":"SearchPhaseExecutionException[Failed to execute phase [query], total failure; shardFailures
{[kws9J6tbQtWCMNKBm3Gpkw][test][4]: SearchParseException[[test][4]:
from[-1],size[-1]: Parse Failure [Failed to parse source
[\n{\n\"query\" : {\n\"term\" : {\"_all\" : {\"query\"
:\"Vaibhav\",\"analyzer\" : \"lowercase_keyword\" }}\n}\n}]]]; …
Run Code Online (Sandbox Code Playgroud)

elasticsearch

35
推荐指数
2
解决办法
3万
查看次数

标签 统计

elasticsearch ×1