簡體   English   中英

如何僅在查詢屬性中指定某些字段

[英]How to specify certain fields only in the query property

我正在使用一個服務,它將請求包裝到Elastic Search。 此服務僅允許我將query屬性發送到Elastic Search。 我想告訴Elastic Search只查找文檔中某個字段的匹配項。

例如,如果這是我的文檔:

{
  name: 'foo',
  value: 'true'
}

然后我想告訴Elastic Search只查找name等於foo文檔。

Elastic Search 文檔說通過使用fields屬性來執行此操作:

{
  "multi_match" : {
    "query" : "this is a test",
    "fields" : [ "subject^3", "message" ] 
  }
}

但我只能訪問query屬性,所以我不能指定fields 在頁面下方,在最佳字段下,它表示這相當於執行類似+first_name:will +first_name:smith 但是,當我把這個,它是尋找實際匹配的文本+first_name:will +first_name:smith的價值,而不是尋找一個first_name具有值字段will

是否可以僅使用query屬性指定要使用彈性搜索搜索的字段?

這聽起來像是query_string的完美匹配( https://www.elastic.co/guide/en/elasticsearch/reference/1.x/query-dsl-query-string-query.html )。 你可以用它做這樣的事情:

"query_string" : {
    "query" : "subject:whatever OR message:whatever"
  }

所以,如果你可以改變multi_matchquery_string這將是你在找什么。

Lucene支持現場數據。 執行搜索時,您可以指定字段,也可以使用默認字段。 字段名稱和默認字段是特定於實現的。

您可以通過鍵入字段名稱后跟冒號“:”來搜索任何字段,然后輸入您要查找的術語。

{
    "query": {
        "query_string": {
            "query": "Name:\"foo bar cook\"",
            "default_operator" : "or"
        }
    }
}

使用default_operator並執行AND操作,或在值之間執行OR類操作

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM