Results returned by elasticsearch are inaccurate

I am using elasticsearch-1.4.4 and i started working on elasticsearch since a month. currently i am having an es cluster with 1 gb of log data indexed. I am currently maintaining a single shard as I am working on a single machine.
curl -XGET localhost:9200/index/_count -d '
and its result is 124580
where i ran grep for same on the file i indexed i can see total count is 175745
not only count, but also _search and top N aggregation everything gave me the same count.
i tried on various machines and various fields but always my results are inaccurate. can anyone please help me know where i am going wrong.