elasticsearch - 无法按“公司”一词搜索
问题描述
以下两个问题都与相同index
1)我正在使用弹性搜索。我的文字包含“公司”一词
例如:John 曾在 Bharat Electronics 和 Gillette 等公司担任高级管理职位,在那里他设立了新部门,管理人才招聘、系统、流程并制定人力资源 SOP
当我使用以下查询进行搜索时,我没有找到任何结果,但是它应该返回了数据:
{
"query": {
"bool": {
"should": [
{ "match":
{
"fields.bio": "company"
}
}
]
}
}
}
我得到零记录,但它应该在记录之上找到。
2)在创建我使用的索引时,english stop words
但它仍然返回基于单词的记录,例如an
. 我用来创建索引的代码:
{
"settings": {
"analysis": {
"filter": {
"my_stop": {
"type": "stop",
"stopwords": "_english_"
}
}
}
}
}
因此,即使文本包含an
单词,它也不应该返回任何记录但实际上,如果它在记录中找到an
单词,它就会返回记录。
索引映射如下:
{
"experts": {
"mappings": {
"properties": {
"categories": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"expertise": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"fields": {
"properties": {
"annual_income": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"avg_rating": {
"type": "long"
},
"bio": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"calls": {
"type": "long"
},
"current_company": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"current_country_id": {
"type": "long"
},
"current_position": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"email": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"id": {
"type": "long"
},
"linkedin_url": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"mobileno": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"profile_photo_url": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"review_count": {
"type": "long"
},
"total_experience": {
"type": "long"
},
"username": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"users": {
"type": "long"
}
}
},
"functions": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"id": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"industries": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"qualifications": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
}
}
}
}
}
请帮忙。
解决方案
推荐阅读
- python - 在 Python 中的 for 循环语句中创建一个循环
- python - 如何有条件地将一个数据帧中的值记录到另一个数据帧中?
- numbers - 查找给定自然数中是否有奇数的最快方法是什么
- python - 如何修复这个通过参数化函数列表迭代的“for”循环?
- r - 如何在R中获得摘要基分类
- powershell - 从 CSV 禁用/启用 AD 用户帐户
- mercurial - Tortoise 上的 Mercurial HG 卡住 - 等待锁定工作目录
- tsql - 如何在 SSIS 表达式的列中删除 2 个特殊字符之间的多个字符
- javascript - 如何根据新旧数据过滤数据
- laravel - 如何为 laravel 8 工厂设置参数?