ElasticSearch备忘录

使用QueryBuilder
  * termQuery("key", obj) 完全匹配
  * termsQuery("key", obj1, obj2..)   一次匹配多个值
  * matchQuery("key", Obj) 单个匹配, field不支持通配符, 前缀具高级特性
  * multiMatchQuery("text", "field1", "field2"..);  匹配多个字段, field有通配符忒行
  * matchAllQuery();         匹配所有文件
  *
组合查询
  * must(QueryBuilders) :   AND
  * mustNot(QueryBuilders): NOT
  * should:                  : OR
只查询一个id的
  *QueryBuilders.idsQuery(String...type).ids(Collection<String> ids)
父或子的文档查询 
* moreLikeThisQuery: 实现基于内容推荐, 支持实现一句话相似文章查询
     * {   
        "more_like_this" : {   
        "fields" : ["title", "content"],   // 要匹配的字段, 不填默认_all
        "like_text" : "text like this one",   // 匹配的文本
        }   
    }     
    
    percent_terms_to_match:匹配项(term)的百分比,默认是0.3

    min_term_freq:一篇文档中一个词语至少出现次数,小于这个值的词将被忽略,默认是2
    
    max_query_terms:一条查询语句中允许最多查询词语的个数,默认是25
    
    stop_words:设置停止词,匹配时会忽略停止词
    
    min_doc_freq:一个词语最少在多少篇文档中出现,小于这个值的词会将被忽略,默认是无限制
    
    max_doc_freq:一个词语最多在多少篇文档中出现,大于这个值的词会将被忽略,默认是无限制
    
    min_word_len:最小的词语长度,默认是0
    
    max_word_len:最多的词语长度,默认无限制
    
    boost_terms:设置词语权重,默认是1
    
    boost:设置查询权重,默认是1
    
    analyzer:设置使用的分词器,默认是使用该字段指定的分词器
发布了6 篇原创文章 · 获赞 0 · 访问量 213

猜你喜欢

转载自blog.csdn.net/jingshuipengpeng/article/details/103346094