我有一个要求可以使部分匹配的关键字/词条以任意顺序输入的结果的提示。
更清楚地说,下面是样本索引
我也尝试使用“字母”令牌生成器和“空白”。
PUT test_index
{
"settings": {
"analysis": {
"analyzer": {
"custom_analyzer": {
"type": "custom",
"tokenizer": "letter",
"char_filter": [
"html_strip"
],
"filter": ["lowercase", "asciifolding"]
}
}
}
},
"mappings": {
"doc": {
"properties": {
"keyword": {
"type": "text",
"analyzer": "custom_analyzer"
}
}
}
}
}
我在示例数据下面插入了
{
"id":1,
"keyword":"blue car"
},
{
"id":2,
"keyword":"blue cars"
},
{
"id":3,
"keyword":"red can"
},
{
"id":4,
"keyword":"control device"
},
{
"id":5,
"keyword":"controlled pressure"
},
{
"id":6,
"keyword":"controller app"
}
当我使用以下模糊查询时,
GET test_index/_search
{
"query": {
"fuzzy" : {
"keyword" : {
"value": "car",
"boost": 1.0,
"fuzziness": 2,
"prefix_length": 0,
"max_expansions": 100
}
}
}
}
请为方案和需求提供解决方案。
简单的一行要求是,结果中应显示任何顺序的部分匹配关键字/搜索词。
非常感谢。