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.

Reply via email to