我有以下的索引文件:ElasticSearch不返回結果對字符串屬性方面查詢
{
"visitor": {
"id": <SOME STRING VALUE>
}
}
的文件的映射:
"visitor": {
"properties": {
"id": {
"type": "string"
}
}
}
當我運行以下查詢我得到的結果:
{
"query": {
"filtered": {
"query": {
"match_all": {}
}
},
"filter": {
"term": { "visitor.id": "123" }
}
}
}
儘管如此,這並不:
{
"query": {
"filtered": {
"query": {
"match_all": {}
}
},
"filter": {
"term": { "visitor.id": "ABC" }
}
}
}
我一直在想這與分析儀有關,並一直在追逐下來。我也一直在想,如果我錯誤地使用點符號來訪問嵌套的訪客屬性。
誰能告訴我爲什麼我不能用「ABC」的ID,但可以在訪客篩選遊客123
我對分析儀的預感得到了回報。我發現將visitor.id設置爲「abc」而不是「ABC」時,我能夠獲得預期的結果。我正在研究默認字符串分析器在遇到所有大寫字母時會做什麼。但是,在我的映射中將字段設置爲「索引」:「not_analyzed」解決了問題。 「訪客」:{ 「屬性」:{ 「ID」:{ 「類型」: 「串」 「索引」: 「not_analyzed」 } } } – goatshepard
正是這樣。這個問題的變種每週出現幾十次。你可能會發現這篇感興趣的文章:https://www.found.no/foundation/beginner-troubleshooting/ :) –
感謝這篇文章,亞歷克斯。這非常有幫助。它鏈接到的帖子:https://www.found.no/foundation/text-analysis-part-1/更有幫助。 – goatshepard