1. 我有一个字符串“111aaa333”,用ik_max_word分词,分词结果如下:
结果搜索不到这个"111aaa333"这个title。但是根据match_phrase的定义,aaa 和 333这两个token都匹配上了,而且他们的positon相差1,应该是符合条件的啊。 但是搜索"aaa 333",中间加个空格就可以搜到了,感觉很奇怪!
同理match_phrase_prefix,搜索"aaa3"或者"aaa33"也搜不到这个title,按理说3和33都是333的前缀,应该是能搜到的。
以上连个疑问还请大神答疑
 
															
																				{
  "tokens" : [
    {
      "token" : "111aaa333",
      "start_offset" : 0,
      "end_offset" : 9,
      "type" : "LETTER",
      "position" : 0
    },
    {
      "token" : "111",
      "start_offset" : 0,
      "end_offset" : 3,
      "type" : "ARABIC",
      "position" : 1
    },
    {
      "token" : "aaa",
      "start_offset" : 3,
      "end_offset" : 6,
      "type" : "ENGLISH",
      "position" : 2
    },
    {
      "token" : "333",
      "start_offset" : 6,
      "end_offset" : 9,
      "type" : "ARABIC",
      "position" : 3
    }
  ]
}搜索语句如下:
{
  "query": {
    "match_phrase": {
      "title": "aaa333"
    }
  }
}
结果搜索不到这个"111aaa333"这个title。但是根据match_phrase的定义,aaa 和 333这两个token都匹配上了,而且他们的positon相差1,应该是符合条件的啊。 但是搜索"aaa 333",中间加个空格就可以搜到了,感觉很奇怪!
同理match_phrase_prefix,搜索"aaa3"或者"aaa33"也搜不到这个title,按理说3和33都是333的前缀,应该是能搜到的。
以上连个疑问还请大神答疑
	
1 个回复
Charele - Cisco4321
赞同来自:
加个profile就晓得昨肥4了,
既然是max分词,相应它出来的要求也是max的
它要求你里面要包含"aaa333", "aaa", "333"这三个词