我的目标是使用ElasticSearch查找可以在要查询的段落内找到哪些索引短语。
我尝试使用渗滤搜索,但无法将其优化为100%匹配。可悲的是,ElasticSearch文档不够清晰。
我的索引文件:
我的查询:
“我们正在寻找一种动物,该动物必须能够站立在两只脚上,还必须跳得比树高,并且应该比40mph快,并且具有带有翅膀的白色和红色条纹”
我期望得到什么结果(完全匹配,不区分大小写):
我得到什么结果(部分匹配):
答案 0 :(得分:1)
但是我无法将其优化为100%匹配
似乎您需要使用full-text query之类的Match Phrase Query。来自docs:
高级全文查询通常用于在全文字段(如电子邮件正文)上运行全文查询。
答案 1 :(得分:1)
正如已经建议的那样,您应该尝试match_phrase。
您的查询应类似于。
GET <indexname>/_search
{
"query": {
"bool": {
"must": [
{
"match_phrase": {
"Sentence": "be able to stand on two feet"
}
},
{
"match_phrase": {
"Sentence": "must jump higher than a tree"
}
}
]
}
}
}
P.S .:您应该按顺序提供match_phrases 在那里。