我正在使用Elasticsearch来允许用户输入要搜索的术语。例如,我想搜索以下属性“名称”:
'name': 'The car is black'
如果以下内容用于搜索black car或car black,我希望返回此文档。
我试着做了一个bool必须和多个术语的['black', 'car'],但它似乎只有在整个字符串是匹配的情况下才有效。
所以我真正想做的是,这个词是否包含了两个词的任何顺序。
谁能帮我走上正确的轨道吗?我把头撞在这上面已经有一阵子了。
发布于 2015-05-09 16:32:00
如果它似乎只在整个字符串是匹配的情况下才有效,那么首先要确保在索引映射中分析字符串属性name,即该属性的映射不包含"index": "not_analyzed"。如果不是这样,则需要重新索引索引,以便能够搜索标记,而不仅仅是整个短语。
一旦确定对字符串进行了分析,就可以使用:
"minimum_should_match"参数的术语查询与输入的字数相等。https://stackoverflow.com/questions/30136051
复制相似问题