0
我有一些數據與elasticsearch 1.5.2進行了彙總,當我在city
等字段上進行術語聚合時,存儲桶不匹配字段中的完整字符串。例如)如果城市是聖路易斯,那麼一個桶將是St.
,另一個是Louis
。有誰知道如何確保它在聚合時進入St. Louis
桶?如何獲得術語聚合以匹配總字符串?
注:這可能是從被分析的數據,我敢肯定休息了字符串比較和搜索等
我有一些數據與elasticsearch 1.5.2進行了彙總,當我在city
等字段上進行術語聚合時,存儲桶不匹配字段中的完整字符串。例如)如果城市是聖路易斯,那麼一個桶將是St.
,另一個是Louis
。有誰知道如何確保它在聚合時進入St. Louis
桶?如何獲得術語聚合以匹配總字符串?
注:這可能是從被分析的數據,我敢肯定休息了字符串比較和搜索等
你是正確的,當造成的。所以,你只需要使用這個映射到您的city
字段映射爲not_analyzed
字符串:
{
"your_type" : {
"properties" : {
"city" : {
"type" : "string",
"index" : "analyzed",
"fields" : {
"raw" : {"type" : "string", "index" : "not_analyzed"}
}
}
}
}
}
然後你就可以簡單地在city.raw
場運行聚合(其中包含未分析的價值,即St. Louis
)代替city
,其被分析並將內容分解成多個標記(即,st
和louis
)。
如果你事先知道,你永遠不會需要分析的領域,你可以簡單地存儲這樣的not_analyzed
場(即無需對fields
部分宣佈了多場):
{
"your_type" : {
"properties" : {
"city" : {
"type" : "string",
"index" : "not_analyzed"
}
}
}
}