我使用elasticsearch扩展在yii2框架上使用elasticsearch。
我必须在elasticsearch中索引一些位置数据,如下所示:
我可以根据提供的数据查找位置,例如:
它应该不区分大小写。
目前,当我进行查询时,如果案例不匹配,我将无法获得任何结果。
我的映射是:
properties :
id :
type : long
countryName
type : string
fields :
raw :
type : string
index : not_analyzed
stateName
type : string
fields :
raw :
type : string
index : not_analyzed
cityName
type : string
fields :
raw :
type : string
index : not_analyzed
addressName
type : string
fields :
raw :
type : string
index : not_analyzed
我添加了一个分析仪:
analysis :
analyzer :
analyzer_keyword :
tokenizer : keyword
filter : lowercase
当我进行查询countryName='United States'
时,我什么也得不到,但如果我countryName='united states'
,我会得到匹配的记录
当我countryName.raw='United States'
时,我会得到匹配的记录,但如果它是小写的,我就什么都得不到。
对于stateName
,cityName
和addressName
,如果我进行如下查询:
stateName='New York'
或将其更改为小写我不会得到任何结果。
如果我选择stateName.raw
,cityName.raw
和addressName.raw
,它就像countryName.raw
任何人都可以帮我吗?