Getting closer:
I converted my searchResponse to a var
i can now refer to a value like this:
(((dynamic)dyndist).hits.hits[1]).Value._source.Id
This works great and if I put a 2 there it works and returns the second
item.
Ok that's all well and good however. I cannot do something like this:
var dyndist = new Elasticsearch.Net.DynamicDictionary();
dyndist = searchResponse.Response;
long maxhit;
maxhit = ((dynamic)dyndist).hits.total.Value; //this does get the # of hits
for (int hitpos = 1 ; hitpos <= maxhit; hitpos ++)
{
//just creating a string here but I would
theid = theid + ":" +
(((dynamic)dyndist).hits.hits[hitpos]).Value._source.Id; //id is my id not
the id from ElasticSearch
}
I get this error:
An unhandled exception of type
'Microsoft.CSharp.RuntimeBinder.RuntimeBinderException' occurred in
System.Core.dll
Additional information: Cannot perform runtime binding on a null reference
If I switch that hitpos to a 1 it works fine and returns the 1 value. i
want to get them all somehow..
Any ideas.
I tried converting to a List but only .Values is a List seems I can't
convert hits.hits. Stuck here for now :-(
On Monday, January 12, 2015 at 10:37:00 PM UTC-5, GWired wrote:
> Ok that worked. Sort of. I can see the results in the response now.
>
> However I'm not able to refer to hits. I can see them but there isn't a
> hit or hits type to refer to so I can see what is in a hit.
>
> string? myid = searchResponse.Response.hits.hits[1].nestedObject["id"
> ].myid
> Doesn't work.
>
> Trying to follow this guide here
> http://nest.azurewebsites.net/elasticsearch-net/handling-responses.html
> and hits isn't a member/method or type.
>
> When I try to refer to hits i get this...
>
> Error 2 'Elasticsearch.Net.DynamicDictionary' does not contain a
> definition for 'hits' and no extension method 'hits' accepting a first
> argument of type 'Elasticsearch.Net.DynamicDictionary' could be are you
> missing a using directive or an assembly
> reference?) C:\pathtoproject\main.cs 56 52 SearchTest
>
> On Saturday, January 10, 2015 at 6:27:03 AM UTC-5, Steve Flook wrote:
>
>> I think you are just getting unlucky. You are asking for the top 10
>> results, starting *after *result number 10. Only problem is the search
>> response is saying there is only 10 results total, so there are no hits to
>> return.
>>
>> Try changing your from to 0, instead of 1 * 10. Or you can just omit
>> that all together, as ES will default to 0.
>>
>> If you are coming from the world of sql, one difference in simple queries
>> is ES gives back the total number of results with that total property
>> you see in the response's hits section. So even if you ask for only 10
>> documents, total will give you the full count no matter what.
>>
>> Steve
>>
>> On Friday, January 9, 2015 at 12:43:36 PM UTC-5, Garrett Johnson wrote:
>>>
>>> Hi All,
>>>
>>> I would like to use Elasticsearch.Net (NEST requires types and I do not
>>> want strong types) to do a simple _all term search. I can do this using
>>> the plugin elasticsearch head and I retrieve the appropriate documents.
>>> Here is some simple code I wrote just to say hey give me all that match.
>>>
>>> var node = new Uri(http://myhost:9200);
>>>
>>> var config = new ConnectionConfiguration(node);
>>>
>>> var exposed = config.ExposeRawResponse(true);
>>>
>>> var client = new ElasticsearchClient(config);
>>>
>>> var search = new
>>>
>>> {
>>>
>>> size = 10,
>>>
>>> from = 1 * 10,
>>>
>>> query = new { query_string = new { query = this.textBox1.Text } },
>>>
>>> };
>>>
>>> var searchResponse = client.Search("jdbc",search);
>>>
>>> This returns these results:
>>>
>>> {StatusCode: 200,
>>> Method: POST,
>>> Url: http://u4vmeqlditapp01:9200/jdbc/_search,
>>> Request:
>>> {"size":10,"from":10,"query":{"query_string":{"query":"Garrett"}}},
>>> Response:
>>> {"took":5,"timed_out":false,"_shards":{"total":5,"successful":5,"failed":0},"hits":{"total":10,"max_score":1.1672286,"hits":[]}}}
>>>
>>> But no documents.
>>>
>>> Here is the JSON I'm trying to replicate:
>>>
>>>
>>>
>>> - "query": {
>>> - "bool": {
>>> - "must": [
>>> - {
>>> - "query_string": {
>>> - "default_field": "_all",
>>> - "query": "Garrett"
>>> }
>>> }
>>> ],
>>> - "must_not": [ ],
>>> - "should": [ ]
>>> }
>>> },
>>> - "from": 0,
>>> - "size": 25000,
>>> - "sort": [ ],
>>> - "facets": { }
>>>
>>>
>>> I'm pretty sure it is because the query doesn't have the default_field
>>> set to _all... But I don't know how to set that. I've tried several string
>>> concatenations to no avail.... it just searched for them.
>>>
>>> Any one with any ideas. I want to simply search all types for a single
>>> string.
>>>
>>> Garrett
>>>
>>>
>>>
>>>
>>>
>>>
--
You received this message because you are subscribed to the Google Groups
"elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/elasticsearch/f4d6beb4-601c-4460-9a61-2850a8f00800%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.