当我尝试将“not_analyzed”应用于我的ES映射时,它不起作用。
我正在Laravel中将此软件包用于ES-Elasticquent
我的映射如下:
'ad_title' => [
'type' => 'string',
'analyzer' => 'standard'
],
'ad_type' => [
'type' => 'integer',
'index' => 'not_analyzed'
],
'ad_type' => [
'type' => 'integer',
'index' => 'not_analyzed'
],
'ad_state' => [
'type' => 'integer',
'index' => 'not_analyzed'
],
然后,我执行一个API get调用来查看映射,它将输出:
"testindex": {
"mappings": {
"ad_ad": {
"properties": {
"ad_city": {
"type": "integer"
},
"ad_id": {
"type": "long"
},
"ad_state": {
"type": "integer"
},
"ad_title": {
"type": "string",
"analyzer": "standard"
},
"ad_type": {
"type": "integer"
},
请注意,缺少not_analyzed。
我也无法在日志中看到任何错误/警告。
最佳答案
我从自己的经验中学到的是,在进行任何索引编制之前,必须先进行映射。删除创建的索引,分配not_analyzed映射器,然后再次索引字段,您将出现not_analyzed字段。请让我知道这是否适合您。谢谢。
关于php - Elasticsearch不会将not_analyzed应用到我的映射中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28762230/