我使用query_string进行全文搜索,并使用type定义如何使用full_text搜索(必须使用的类型之一是phrase_prefix )来返回具有确切术语的文档.
我的问题是:
当我想找一个词的时候..。如tea,返回的文档最多是因为teacher,我知道要解决这个问题,我必须使用phrase类型.但是,当我在一个词中使用这种类型时,我会触及另一个问题,例如ui..由于大多数文档包含UI/UX word,所以在phrase类型搜索中,这些文档不会返回。
所以我有一个查询,它的行为必须像一个phrase_prefix,但不是所有的时间.问题是我不知道确切的时间!
如果有人对我的问题有任何解决办法。我很感激能和我分享这一切。
发布于 2018-05-16 14:27:23
解决这个问题的一个简单方法是使用两个查询将它们与或连接在布尔中查询中。在这种情况下,您将在这两种情况下检索结果。这意味着,当您搜索tea时,您将得到teacher和tea,但是由于对tea来说,这两个子句都匹配--您应该获得更高的tea分数。同样适用于UI
查询的示例如下:
{
"query": {
"bool" : {
"should" : [
{
##query1
},
{
##query2
}
]
}
}
}当然,这并不理想,但至少它会让你继续前进。
有关More子句的更多信息- https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-bool-query.html
https://stackoverflow.com/questions/50366429
复制相似问题