Elasticsearch SQL全文搜索 --- 2022-0

2022-06-12  本文已影响0人  一位先生_

ES SQL语法虽然支持like语句,但是like并不是使用全文搜索算法,ES SQL语句中主要通过MATCH函数实现全文搜索。

1.MATCH函数

语法:

MATCH(
    field_exp,   
    constant_exp 
    [, options]) 

说明:

2.全文搜索例子

POST /_sql?format=txt
{
    "query": "SELECT author, name FROM library WHERE MATCH(author, 'frank')"
}

说明:

查询library索引中author字段,匹配frank关键词的文档。

返回结果:

    author     |     name      
---------------+---------------
Frank Herbert  |Dune           

3.SQL相关度排序

通过SCORE()函数实现相关度排序

例子:

POST /_sql?format=txt
{
    "query": "SELECT author, name FROM library WHERE MATCH(author, 'frank') ORDER BY SCORE()"
}

也可以将相关度分数返回

例子:

SELECT SCORE(), * FROM library WHERE MATCH(name, 'dune') ORDER BY SCORE() DESC;
上一篇下一篇

猜你喜欢

热点阅读