CEST의 elasticsearch 인덱스를 검색하는 데 NEST를 사용하고 있습니다.
Google 크롬 확장 검색에서 검색 쿼리를 실행하면 작동합니다.
하지만 C# 코드에서 검색하려고 할 때 다음과 같은 예외가 얻을 :
An exception of type 'Newtonsoft.Json.JsonSerializationException' occurred in Newtonsoft.Json.dll but was not handled in user code
NEST로 검색하는 동안 JsonSerializationException이 발생했습니다.
Additional information: JsonConverter DictionaryKeysAreNotPropertyNamesJsonConverter on System.Collections.Generic.IDictionary2[System.String,System.Double] _IndicesBoost is not compatible with member type IDictionary2.
내 C# 클래스는 다음과 같습니다
[ElasticType(Name = "ElasticSearchModel")]
public class ElasticSearchModel
{
[ElasticProperty(Type = FieldType.string_type)]
public string Id { get; private set; }
[ElasticProperty(Type = FieldType.string_type)]
public string Url { get; set; }
protected Dictionary<string, string> Properties { get; set; }
[ElasticProperty(Type = FieldType.nested)]
public Array ModelProperties
{
get
{
List<string[]> returnvalue = new List<string[]>();
foreach (var keyvaluepair in Properties)
{
if (!string.IsNullOrEmpty(keyvaluepair.Key))
{
string[] props = new string[2];
props[0] = keyvaluepair.Key;
props[1] = keyvaluepair.Value;
returnvalue.Add(props);
}
}
return returnvalue.ToArray();
}
}
public ElasticSearchModel(string id)
{
this.Id = id;
this.Properties = new Dictionary<string, string>();
}
public void AddProperty(string key, string value)
{
Properties.Add(key, value);
}
}
그리고이 코드를 검색 결과를 얻는 데 사용됩니다.
var descriptor = new SearchDescriptor<ElasticSearchModel>().Indices(new string[] { "kickstartconcept" });
searchresult = ElasticClient.Search(descriptor.QueryString(terms)); //Where terms is a string with the content of the query
사전에 색인을 처음 시도했지만 동일한 예외가있었습니다.
그래서 배열로 시도했지만 그 중 하나를 작동하지 않습니다.
누군가가 예외가 발생하는 곳과 해결 방법을 알고 있습니까? 이건 내 ElasticSearch 지수의 항목 당신의 시간을
감사합니다, Corné
(EDIT) : 색인에서 샘플 항목을 게시
"_source": {
"id": "1082",
"url": "/",
"modelProperties": [
[
"title",
"MyPageTitle"
],
[
"content",
"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec nec lacus luctus, pulvinar ante vitae, feugiat velit. In gravida, urna ac lacinia tincidunt, metus erat pellentesque sem, sed congue massa velit non enim. Suspendisse metus sapien, ornare vel lectus ut, pulvinar feugiat justo. In diam metus, ultricies id augue interdum, dapibus placerat est. Cras vel nulla sed arcu dictum molestie eu ut sem. Suspendisse potenti. Ut mattis odio a aliquam vehicula. Proin varius commodo quam, sed semper orci mattis et. Suspendisse lacinia purus quis arcu semper rhoncus. Integer ut quam ut elit pharetra malesuada."
],
[
"hideinnavigation",
"0"
],
[
"subtitle",
""
],
[
"gridLayout",
"<content><area name=\"Body\"><block>1137</block><block>1139</block><block>1080</block></area><area name=\"Footer\"><block>1080</block></area></content>"
],
[
"searchpage",
""
]
]
}
현재 Elasticsearch 색인에 저장된 항목의 예를 게시 할 수 있습니까? –
방금 내 게시물의 하단에 추가했습니다. – CHop