Я использую NEST (С#) для связи с Elasticsearch. Однако результаты не основаны на количестве попаданий, как я могу отсортировать свои результаты на основе количества попаданий, а также я получаю только 10 записей. Ниже мой пример кода
var result = client.Search(q => q
.Index(IndexName)
.From(0)
.Type("post")
.Fields("title","message")
.Size(10)
.Query(fq1 => fq1
.QueryString(fqqs1 => fqqs1
.OnFieldsWithBoost(d => d
.Add("title", 7.0)
.Add("message", 5.0))
.Query(SearchQuery))));
мое поле message
будет содержать большой текст, возможно ли получить только несколько строк вокруг ключевого слова поиска из сообщения, как в результатах поиска Google
.Fields("title","message")
API, возвращающий полный контент - person user2757044   schedule 10.04.2014Highlights
в ответе. Это даст вам только фрагмент всего поля... См. полную документацию Highlights для Elasticsearch — elasticsearch.org/guide/en/elasticsearch/reference/current/, и все эти параметры, такие как.FragmentSize
, можно установить с помощью NEST. - person Paige Cook   schedule 10.04.2014var jsonData = "{\"search\":[" + string.Join(",", queryResult.Documents.ToArray()) + "]}";
, и я скрываю его в своем объекте класса, используяvar finaleResult = (client.Serializer.Deserialize<Result>(jsonData)).result
, поэтому мне нужно получить выделенный контент в самом исходном поле , Как мне это сделать ? - person user2757044   schedule 11.04.2014