使用 nohup 或 disown 如果你要让某个进程运行在后台。

关于ES使用_template配置IK的后续问题

Elasticsearch | 作者 elasticStack | 发布于2018年07月26日 | 阅读数:3548


 


ES使用_template配置IK分词器的问题链接:https://elasticsearch.cn/question/4930
在此感谢:laoyang360,God_lockin,rochy
上一个问题搞一个段落,但是我发现配置好了之后一个奇怪的现象,详情见附件图片流程
如果那么多图片不想看的话,我简要说明一下我的操作流程:
  1. 插入 数据 host_name:"service.exe"
  2. 使用term 查找 service -->查找不到.原因是ES默认的分词器把service.exe看成了一个整体,所有检索不到
  3. 配置_template,指定string类型的字段analyzer为ik_max_word
  4. 使用term 查找 service 可以检索到之前插入的数据, 说明IK分词器已经起了作用
  5. 使用query_string 单独检索service 检索不到任何内容, 但是指定了host_name域则可以检索到 


问题: 我的疑问是为什么在IK分词器已经起作用的情况下,使用query_stirng还是检索不到service,指定了域就可以,难道这个和检索的范围相关吗?query_string不是在全部域中进行查找吗? 
 
es下划线分词.png
es点分词.png
_template.png
ik点分词.png
ik下划线分词.png
数据.png
question.png

 
term.png
已邀请:

God_lockin

赞同来自: elasticStack

你有没测试过你的ik_max_word把“service.exe”分成什么样了?是不是你搜的东西能匹配的到doc里面的内容

analyze.png

 
然后正常的query的语句和query_string 不太一样
 
querystring 要指明你检索的字段的
https://www.elastic.co/guide/e ... yntax
 
{
"query": {
"query_string" : {
"fields" : ["content", "name"],
"query" : "this AND that"
}
}
}

然后再改改检索条件试试?

laoyang360 - 《一本书讲透Elasticsearch》作者,Elastic认证工程师 [死磕Elasitcsearch]知识星球地址:http://t.cn/RmwM3N9;微信公众号:铭毅天下; 博客:https://elastic.blog.csdn.net

赞同来自: elasticStack

想要精确匹配的另外一个思路:
{
"query":{
"term":{
"host_name.keyword":"service.exe"
}
}
}
注意:.keyword类型的不同。

elasticStack - 90后it大数据男

赞同来自:

好吧,上传了七张照片,怎么剩了一张

elasticStack - 90后it大数据男

赞同来自:

_template.png


数据.png


term.png


question.png

 

要回复问题请先登录注册