Thanks Nik for very descriptive solution. I also did some mapping mistakes for which i was not able to get highlighted text in response for sample data.
I fixed it by using folllowing mapping http://localhost:9200/cnn/test/_mapping { "test": { "properties": { "file": { "type": "attachment", "path": "full", "fields": { "_content_type": { "store":"yes" }, "_name": { "store":"yes" }, "content": { "term_vector":"with_positions_offsets", "store":"yes" }, "file": { "term_vector":"with_positions_offsets", "store":"yes" } } } } } } and then i queried it like http://localhost:9200/cnn/test/_search?pretty=true { "_source" : ["file._content_type","file._name"], "query" : { "query_string" : { "query" : "CROWLEY" } }, "highlight" : { "fields" : { "file" : {"number_of_fragments" : 1} } } } Yes. I'll look into version 1.3 for performance. naveen On Tuesday, 2 December 2014 19:05:03 UTC+5:30, Nikolas Everett wrote: > > > > On Mon, Dec 1, 2014 at 10:42 PM, N Bijalwan <[email protected] > <javascript:>> wrote: > >> We are using manifolcf to crawl web pages and then index them through >> Elastic search. >> >> Is there way to get only few lines that contain the searched keyword in >> response of elastic search query instead of whole content. Like we get in >> google search. >> Solution we are trying: Reference >> http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/docs-termvectors.html >> >> <https://email2010.searshc.com/owa/redir.aspx?C=VTBiULXBnE-XzIuMedjuaGPHLq134dEI2v0GWL91l1pzNGDfDsz11x4ckLumFc5e2EMae1ef3sk.&URL=http%3a%2f%2fwww.elasticsearch.org%2fguide%2fen%2felasticsearch%2freference%2fcurrent%2fdocs-termvectors.html> >> >> >> http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-request-highlighting.html >> >> <https://email2010.searshc.com/owa/redir.aspx?C=VTBiULXBnE-XzIuMedjuaGPHLq134dEI2v0GWL91l1pzNGDfDsz11x4ckLumFc5e2EMae1ef3sk.&URL=http%3a%2f%2fwww.elasticsearch.org%2fguide%2fen%2felasticsearch%2freference%2fcurrent%2fsearch-request-highlighting.html> >> >> We are trying to do mapping like: >> >> { >> "mappings": { >> "test": { >> "properties": { >> "file": { >> "type": "attachment", >> "path": "full", >> "fields": { >> "_content_type": { >> "type": "string", >> "store": true >> }, >> "_name": { >> "type": "string", >> "store": true >> }, >> "content": { >> "type": "string", >> "term_vector": "with_positions_offsets_payloads", >> "store" : true, >> "index_analyzer" : "fulltext_analyzer" >> >> } >> }, >> "store" : true, >> "term_vector" : "with_positions_offsets_payloads" >> } >> } >> } >> }, >> "settings" : { >> "index" : { >> "number_of_shards" : 1, >> "number_of_replicas" : 0 >> }, >> "analysis": { >> "analyzer": { >> "fulltext_analyzer": { >> "type": "custom", >> "tokenizer": "whitespace", >> "filter": [ >> "lowercase", >> "type_as_payload" >> ] >> } >> } >> } >> } >> } >> >> >> and then query like: >> >> { >> "query": { >> "match": { >> "file": "CROWLEY" >> } >> }, >> "highlight" : { >> "fields" : { >> "file" : {"fragment_size" : 150, "number_of_fragments" : 3} >> } >> } >> } >> >> But we don't get highlight in response instead we get whole content in >> response. >> >> Any help is appreciated. >> >> >> > You have to specify the full path of what you want to highlight. Like > {"fields": {"file.content"}}. You'll also get the whole content back by > default unless you turn it off with "_source": false in the request. You > can filter it to only get the parts that you want: > http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-request-source-filtering.html > > You'll find that using term vectors costs a ton of extra space and > therefor IO on write, merge, and search. You can reduce it by switching to > the postings highlighter if your content is prose. The plain highlighter > isn't an option if your content might get long. Each of those highlighters > require different stored data and produce different shaped results. You > could also try the experimental highlighter (if you are using Elasticsearch > 1.3.X) - it steals a ton of ideas from the others and is super flexible and > quite stable. We wrote it because we couldn't afford the extra space for > term vectors but didn't like the posting's highlighter's segmentation rules. > > Nik > -- 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/e1004ca7-f0f8-4917-978c-70357e910451%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
