Я использую Searchblox для индексации и поиска файлов, которые сам вызывает ES 2.x для выполнения задания. Searchblox использует файл "mapping.json" для инициализации отображения при создании индекса. Вот link к этому файлу. Как «@Russ Cam» предложил here, я создал свой собственный контент класса с помощью следующего кода (так же, как он сделал с индексом «вопросы» и класс «Вопрос»):Невозможно получить какие-либо документы с помощью NEST от elasticsearch
public class Content
{
public string type { get; set; }
public Fields fields { get; set; }
}
public class Fields
{
public Content1 content { get; set; }
public Autocomplete autocomplete { get; set; }
}
public class Content1
{
public string type { get; set; }
public string store { get; set; }
public string index { get; set; }
public string analyzer { get; set; }
public string include_in_all { get; set; }
public string boost { get; set; }
} //got this with paste special->json class
Эти поля из класса контента (тип, магазин и т. д.) поступают из файла mapping.json, указанного выше. Теперь, когда я (так же, как ты показала мне) выполнить следующий код:
var searchResponse = highLevelclient.Search<Content>(s => s.Query(q => q
.Match(m => m.Field(f => f.fields.content)
.Query("service")
Все я получаю в ответ на переменном searchResponse является:
Valid NEST response built from a successful low level call on POST: /idx014/content/_search
Audit trail of this API call:
-HealthyResponse: Node: http://localhost:9200/ Took: 00:00:00.7180404
Request:
{"query":{"match":{"fields.content":{"query":"service"}}}}
Response:
{"took":1,"timed_out":false,"_shards":{"total":5,"successful":5,"failed":0},"hits":{"total":0,"max_score":null,"hits":[]}}
And no documents in searchResponse.Documents. Contradictorily, when I search for the "service" query on Searchblox or make an API call to localhost:9200 with the Sense extension of Google Chrome, I get 2 documents. (the documents that I was looking for)
Короче говоря, все, что я хочу, чтобы быть в состоянии:
- получить все документы (нет критериев)
- получить все документы в пределах диапазона времени и на основе ключевых слов .. такие, как «сервис»
Что я делаю неправильно? Я могу предоставить дополнительную информацию, если это необходимо. Спасибо всем за подробные ответы.
Я отлажена следующая строка: уага searchResponse = highLevelclient.Search (с => запрос (д => д .Match (т => m.Field (е => f.fields.content) .Query (» service ") И получил следующее: [error] (https://drive.google.com/open?id=0B1LnMWaj1afaQ0ltd0ExVGc3OTQ). Почему я получаю _ «Метод может быть вызван только для типа, для которого Type.IsGenericParameter является истинным». _ Ошибка? Эта ошибка должна что-то делать со мной gettin ** 0 ** документов? –
cemowski23
Возможно, вам лучше использовать Apache Searchblox, чтобы получить документы в формате json или xml. – user7313404
Также проверьте базовые учетные данные для доступа к elasticsearch @ 9200, так как Searchblox предоставляет уровень безопасности перед доступом к данным. – user7313404