Reputation: 71
I am new in Elastic search and i want to use it for Phonetic search so I have added plugin NEST in dotnet using nougat package and tried to create index with phonetic but getting following error.
ServerError = {ServerError: 400Type: illegal_argument_exception Reason: "Unknown filter type [phonetic] for [my_metaphone]"}
var result = client.CreateIndex("indexName", i => i
.Settings(s => s
.Analysis(a => a
.Analyzers(x => x.Custom("my_analyzer", ca => ca.Filters("standard", "lowercase", "my_metaphone")))
.TokenFilters(x => x.Phonetic("my_metaphone", pf => pf.Encoder(PhoneticEncoder.DoubleMetaphone)))
))
.Mappings(m => m
.Map<CityModel>(mm => mm
.AutoMap()
.Properties(p => p
.Text(t => t
.Name(n => n.Name)
.Analyzer("my_analyzer")
.SearchAnalyzer("my_analyzer")
)
)
)
)
);
Can any one help me to create index with phonetic configuration in dotnet? Thanks in Advance
EDIT :
I can able to create index with below json request.
<pre>
PUT /indexname
{
"settings": {
"index": {
"number_of_shards" : 4,
"analysis": {
"analyzer": {
"my_analyzer": {
"tokenizer": "standard",
"filter": ["standard","lowercase","my_metaphone"]
}
},
"filter": {
"my_metaphone": {
"type": "phonetic",
"encoder": "metaphone",
"replace": false
}
}
}
}
},
"mappings":{
"crm3":{
"properties":{
"@timestamp":{
"type":"date"
},
"@version":{
"type":"text",
"fields":{
"keyword":{
"type":"keyword",
"ignore_above":256
}
}
},
"AccountCategory":{
"type":"text",
"fields":{
"keyword":{
"type":"keyword",
"ignore_above":256
}
}
},
"AccountNo":{
"type":"text",
"fields":{
"keyword":{
"type":"keyword",
"ignore_above":256
}
}
},
"AccountStatus":{
"type":"text",
"fields":{
"keyword":{
"type":"keyword",
"ignore_above":256
}
}
},
"ActivationDate":{
"type":"text",
"fields":{
"keyword":{
"type":"keyword",
"ignore_above":256
}
}
},
"AnniversaryDate":{
"type":"text",
"fields":{
"keyword":{
"type":"keyword",
"ignore_above":256
}
}
},
"BirthDate":{
"type":"text",
"fields":{
"keyword":{
"type":"keyword",
"ignore_above":256
}
}
},
"CityName":{
"type":"text",
"fields":{
"keyword":{
"type":"keyword",
"ignore_above":256
}
}
},
"ContactNumbers":{
"type":"text",
"fields":{
"keyword":{
"type":"keyword",
"ignore_above":256
}
}
},
"EmailIDs":{
"type":"text",
"fields":{
"keyword":{
"type":"keyword",
"ignore_above":256
}
}
},
"FirstName":{
"type":"text",
"analyzer": "my_analyzer",
"search_analyzer": "my_analyzer",
"fields":{
"keyword":{
"type":"text"
}
}
},
"Gender":{
"type":"text",
"fields":{
"keyword":{
"type":"keyword",
"ignore_above":256
}
}
},
"IMSINumber":{
"type":"text",
"fields":{
"keyword":{
"type":"keyword",
"ignore_above":256
}
}
},
"IsBlackListed":{
"type":"text",
"fields":{
"keyword":{
"type":"keyword",
"ignore_above":256
}
}
},
"LastName":{
"type":"text",
"fields":{
"keyword":{
"type":"keyword",
"ignore_above":256
}
}
},
"MiddleName":{
"type":"text",
"fields":{
"keyword":{
"type":"keyword",
"ignore_above":256
}
}
},
"OrganizationName":{
"type":"text",
"fields":{
"keyword":{
"type":"keyword",
"ignore_above":256
}
}
},
"Segment":{
"type":"text",
"fields":{
"keyword":{
"type":"keyword",
"ignore_above":256
}
}
},
"SubscriberID":{
"type":"text",
"fields":{
"keyword":{
"type":"keyword",
"ignore_above":256
}
}
},
"SubscriberNo":{
"type":"text",
"fields":{
"keyword":{
"type":"keyword",
"ignore_above":256
}
}
},
"SubscriberTypeName":{
"type":"text",
"fields":{
"keyword":{
"type":"keyword",
"ignore_above":256
}
}
},
"host":{
"type":"text",
"fields":{
"keyword":{
"type":"keyword",
"ignore_above":256
}
}
},
"message":{
"type":"text",
"fields":{
"keyword":{
"type":"keyword",
"ignore_above":256
}
}
},
"path":{
"type":"text",
"fields":{
"keyword":{
"type":"keyword",
"ignore_above":256
}
}
}
}
}
}
}
</pre>
Using C# linq scenario is not working, Can any one guide for the same?
Upvotes: 0
Views: 816
Reputation: 71
Issue is resolved once restart elasticsearch instance after installed phonetic plugin. And you can find using this url (localhost:9200/_nodes) as Rob suggested.
Upvotes: 1