2016-04-12 40 views
1

創建我的索引與下面的自定義分析瞭解蔚藍搜索charFilters映射

"analyzers":[ 
{ 
    "name":"shinglewhite_analyzer", 
    "@odata.type":"#Microsoft.Azure.Search.CustomAnalyzer", 
    "charFilters":[ 
     "map_dash" 
    ], 
    "tokenizer":"whitespace", 
    "tokenFilters":[ 
     "shingle" 
    ] 
} 
], 
"charFilters":[ 
{ 
    "name":"map_dash", 
    "@odata.type":"#Microsoft.Azure.Search.MappingCharFilter", 
    "mappings":[ "_=> " ] 
} 
] 

的問題就像是從輸入將不會匹配查詢冰淇淋ice_cream這個詞,它雖然符合冰淇淋。有人能幫我理解這是如何工作的,如果我做錯了什麼?

此外,我們還希望查詢「冰淇淋」,​​以匹配「冰淇淋」,​​「冰淇淋」和「冰淇淋」,​​但贊成那些按順序。

回答

3

爲了映射到一個空間,請使用以下表示法(我們將更新的文檔,包含此信息):

{ 
    "name":"map_dash", 
    "@odata.type":"#Microsoft.Azure.Search.MappingCharFilter", 
    "mappings":[ "_=>\\u0020" ] 
}   

此外,默認情況下,瓦令牌過濾器的空間分隔標記。如果您想隨後的令牌加入到一個沒有你需要自定義過濾器就像在下面的例子中分隔符:

{ 
    "name": "my_shingle", 
    "@odata.type":"#Microsoft.Azure.Search.ShingleTokenFilter", 
    "tokenSeparator": "" 
} 

有了這兩個變化令牌ice_cream您的分析儀將產生:冰,冰淇淋,奶油。我希望可以幫到