ElasticSearch使用more_like_this检索逗号分隔的相似字符串
1.创建索引结构
# 创建
PUT business_index
{
"settings": {
"analysis": {
"tokenizer": {
"comma": {
"type": "pattern",
"pattern": ","
}
},
"analyzer": {
"comma": {
"type": "custom",
"tokenizer": "comma"
}
}
}
},
"mappings": {
"properties": {
"business": {
"type": "text",
"analyzer": "comma"
}
}
}
}
2.往索引添加数据
POST business_index/_doc
{
"product": "衣服,上衣,裤子,鞋子,帽子"
}
POST business_index/_doc
{
"product": "手套,上衣,袜子,鞋子,帽子"
}
POST business_index/_doc
{
"product": "手套,睡衣,袜子,睡裤,毛巾"
}
POST business_index/_doc
{
"product": "毛巾,鞋子,睡裤,毛巾"
}
POST business_index/_doc
{
"business": "A,B,C,毛巾"
}
3.进行查询
GET business_index/_search
{
"query": {
"more_like_this": {
"fields": [
"business"
],
"like": "衣服,上衣",
"min_doc_freq": 0,
"min_term_freq": 0
}
}
}