美文网首页
Elasticsearch SQL全文搜索 --- 2022-0

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

作者: 一位先生_ | 来源:发表于2022-06-12 13:53 被阅读0次

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

    1.MATCH函数

    语法:

    MATCH(
        field_exp,   
        constant_exp 
        [, options]) 
    

    说明:

    • 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;
    

    相关文章

      网友评论

          本文标题:Elasticsearch SQL全文搜索 --- 2022-0

          本文链接:https://www.haomeiwen.com/subject/ufofsrtx.html