-> slaps forhead
oboe... hitpos should start at 0 not 1
got my results now converting to DG :-)
I will post final code once done.
On Tuesday, January 13, 2015 at 8:57:11 PM UTC-5, GWired wrote:
> 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/fff7dbd7-2985-46d7-a816-ace1c6bf09d3%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.