請注意,我用ElasticSearch一個完整的新手和我在一個時間緊絀。我有下面的查詢:ElasticSearch - 單人比賽到多個
{
"query": {
"filtered": {
"query": {
"match": {
"state": "VA"
}
},
"filter": {
"and": [
{
"bool": {
"must": [
{
"match": {
"status": "Active"
}
}
]
}
}
]
}
}
},
"sort": [
"dom"
],
"size": 1
}
目前,代碼庫只支持搜索與特定的一個狀態的項目。我試圖修改它以支持可能的狀態值列表。現在,我已經看到了,其中一個可以使用should
和terms
,但兩者的結果都是空的數據集。
我試圖尋找這件事,但我的例子已經看到要麼不工作,或者已經很差解釋(如果有的話)的解決方案,或依賴於閱讀和吸收文檔的頁面(這是我簡單地做沒有時間)。我將如何修改頂部查詢來搜索多個值?
更新
運行以下:
curl -XGET localhost:9200/listings/_mapping/listing/field/state?pretty
,我已經獲得的映射:
{
"listings" : {
"mappings" : {
"listing" : {
"state" : {
"full_name" : "state",
"mapping" : {
"state" : {
"type" : "string"
}
}
}
}
}
}
}
更新2
我已經更新d是映射到其設置爲not_analyzed
並啓用了store
選項。數據已被重新導入。新請求如下所示:
{
"query":{
"filtered":{
"filter":{
"and":[
{
"bool":{
"should":[
{
"terms":{
"state":["VA","MD"]
}
}
]
}
},{
"bool":{
"must":[
{
"match":{
"status":"Active"
}
}
]
}
}
]
}
}
},
"sort":["dom"],
"size":1
}
什麼的'state'領域的映射,並提供在這一領域取得了什麼數據樣本。 –
這是一個字符串(兩個字符,大寫),顯然是「分析」。我試過執行一條語句將其改爲'not_analyzed',但它抱怨索引已經存在。 –
是的,如果你想改變映射,你需要重新創建索引。你還沒有提供映射:-)和一個示例文檔。 –