閱讀435 返回首頁    go 技術社區[雲棲]


查詢query子句__搜索子句介紹_API參考手冊_開放搜索-阿裏雲

子句說明

query子句是搜索語句中不可缺少的一部分,它表示在哪個索引字段下查詢什麼內容,並且可以指定多個查詢條件及其之間的關係(ANDORANDNOTRANK)。例如可以將text類型的title和subject組合在一起共同建索引字段default,那麼在default上查詢時,包含在title或者subject中的關鍵詞都可以找到該文檔。有人可以將title字段單獨建立索引title_search,那麼在title_search上查詢時,隻有包含在title字段上的關鍵詞才能找到該文檔。

語法說明

查詢條件格式: 索引字段:'關鍵詞'^boost。表示在哪個索引字段包含的源字段上查找包含“關鍵詞”的文檔。

  • 索引字段為定義應用結構索引表時勾選可搜索,後麵填寫的索引到的字段;表示在哪個字段集合上進行查詢;
  • 關鍵詞即為要查詢的內容。
  • boost,為要設置的關鍵詞權重,類型為int,範圍為[0,99],不設置默認為99。
  • 查詢條件可以為多個,且支持關係為:()、AND、OR、ANDNOT、RANK。(必須為大寫)
  • 索引字段:"關鍵詞",如果使用雙引號查詢的話為phrase(短語)查詢,即要求查詢詞分詞後需要各個term的位置相連、順序一致。

注意事項

  1. query子句為必選子句;
  2. 索引字段為定義應用結構索引表時勾選可搜索,後麵填寫的索引到的字段;
  3. 如果索引字段為空,則默認為default索引字段,如果該應用中沒有default索引字段,則會直接報錯無結果;
  4. 關鍵詞查詢必須用單(雙)引號括起來,否則會導致報錯無結果或者行為不可預期。
  5. 隻有TEXT、MWS_TEXT、NWS_TEXT、SWS_TEXT類型的字段可以建立組合索引字段;
  6. boost值小於0則按照0計算,大於99按照99計算;
  7. 關於各種類型的搜索含義,請參見字段類型介紹。

示例

  1. 查詢title索引字段中包含“北京大學”的文檔;
    query=title:'北京大學'
    
  2. 查詢title索引字段中包含“北京大學”的文檔,並且包含“浙江大學”的文檔;
    query=title:'北京大學' AND title:'浙江大學'
    
  3. 查詢title索引字段中包含“北京大學”或者“浙江大學”,且type為“1”的文檔;
    query=(title:'北京大學' OR title:'浙江大學') AND type:'1'
    
  4. 查詢title索引字段中包含“北京大學”且不包含“清華”的文檔,若title中包含“校長”則排序上排在前麵;
    query=(title:'北京大學' ANDNOT title:'清華') RANK title:'校長'
    // 精排表達式為:text_relevance(title)
    
  5. 查詢title索引字段中包含“北京大學”的文檔,要求“北京大學”不能分開,不希望返回類似“北京的大學”的文檔;
    query=title:"北京大學"
    

最後更新:2016-11-23 16:04:03

  上一篇:go 配置config子句__搜索子句介紹_API參考手冊_開放搜索-阿裏雲
  下一篇:go 過濾filter子句__搜索子句介紹_API參考手冊_開放搜索-阿裏雲