最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Elasticsearch查詢之Term?Query示例解析

 更新時間:2023年04月23日 15:40:04   作者:往之不諫  
這篇文章主要為大家介紹了Elasticsearch查詢之Term?Query示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

Term Query

Term Query是一種最基本的查詢方式,它用于在Elasticsearch中查詢一個字段中包含指定關(guān)鍵詞的文檔,與MySQL中的等值查詢類似。使用Term Query時,可以對字段進行完全匹配,且區(qū)分大小寫。

基本語法

GET /{index}/_search
{
    "query": {
        "term": {
            "{field}": "{value}"
        }
    }
}

其中,{index}表示查詢的索引名稱,{field}表示需要查詢的字段,{value}表示需要匹配的值。

Java代碼寫法

// TODO 省略導入包
import java.io.IOException;
public class TermQueryExample {
    public static void main(String[] args) throws IOException {
        RestHighLevelClient client = new RestHighLevelClient(
                RestClient.builder(
                        new HttpHost("localhost", 9200, "http")));
        SearchRequest searchRequest = new SearchRequest("my_index");
        // 這里的searchSourceBuilder 相當于 query:{}
        SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
        // query:{term:{"field_name":"field_value"}}
        searchSourceBuilder.query(QueryBuilders.termQuery("field_name", "field_value"));
        searchSourceBuilder.timeout(new TimeValue(60, TimeUnit.SECONDS));
        searchRequest.source(searchSourceBuilder);
        // 執(zhí)行查詢
        SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);
        // TODO: 解析搜索結(jié)果
        client.close();
    }
}

Terms-匹配多個值

term查詢只能用于匹配該屬性的單個值,若想匹配多個值,可以用terms查詢

基本語法

GET /{index}/_search
{
    "query": {
        "terms": {
            "{field}": [
                "{value1}",
                "{value2}",
                "{value3}"
            ]
        }
    }
}

Java寫法

SearchRequest searchRequest = new SearchRequest("index");
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
// 注意這里是使用termsQuery("field",value1,value2)
TermsQueryBuilder termsQueryBuilder = QueryBuilders.termsQuery("field", "value1", "value2", "value3");
searchSourceBuilder.query(termsQueryBuilder);
searchRequest.source(searchSourceBuilder);
SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);

Term查詢可配置的其他參數(shù)

Term Query還有其他的一些設(shè)置參數(shù),比如:

  • boost參數(shù):可以為查詢結(jié)果設(shè)置權(quán)重,提高或降低查詢結(jié)果的得分,影響查詢結(jié)果的排名。
  • case_insensitive參數(shù):設(shè)置是否對查詢進行大小寫不敏感的匹配。
  • rewrite參數(shù):控制查詢的rewrite策略,主要用于控制查詢性能,緩存占用等方面。
  • index參數(shù):控制是否在查詢時使用倒排索引,以及使用哪些倒排索引進行查詢。

總結(jié)

使用Term Query時需要注意以下幾點:

  • 僅匹配完全匹配的關(guān)鍵字。
  • 字段必須是不分詞的。
  • 通常情況下,不需要將關(guān)鍵字轉(zhuǎn)換為小寫字母,因為Term Query不會將關(guān)鍵字轉(zhuǎn)換為小寫字母。

總之,Term Query非常適合用于對某個字段進行精確匹配的場景。如果您想進行模糊匹配或全文搜索,請考慮使用Match Query。

以上就是Elasticsearch查詢之Term Query示例解析的詳細內(nèi)容,更多關(guān)于Elasticsearch Term查詢的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評論

河北区| 秦皇岛市| 曲沃县| 成都市| 芜湖市| 广德县| 大城县| 绥阳县| 南漳县| 灌云县| 疏勒县| 那坡县| 涞水县| 洞口县| 容城县| 咸丰县| 久治县| 逊克县| 太康县| 隆子县| 灵寿县| 奉化市| 恩平市| 武功县| 梅河口市| 清远市| 广河县| 房山区| 于都县| 汶川县| 泸水县| 松桃| 平陆县| 崇仁县| 五莲县| 汝南县| 大埔县| 九江县| 修水县| 巨野县| 晋城|