Skip to content

Instantly share code, notes, and snippets.

@bogn
Last active December 16, 2015 09:09
Show Gist options
  • Save bogn/5411318 to your computer and use it in GitHub Desktop.
Save bogn/5411318 to your computer and use it in GitHub Desktop.
A combo analyzer using the sub analyzers German2 snowball and ngram is yielding strange results for me (see comments). elasticsearch 0.20.2. elasticsearch-analysis-combo 1.1.0. Same goes for elasticsearch 0.90.RC2 and elasticsearch-analysis-combo 1.3.0.
curl -XDELETE 'localhost:9200/test'
echo
curl -XPUT 'localhost:9200/test?pretty' -d '{
"mappings" : {
"test" : {
"properties" : {
"text_de" : {
"type" : "string"
}
}
}
},
"settings" : {
"analysis":{
"filter":{
"germansnow":{
"type":"snowball",
"language":"German2"
},
"ngram_filter":{
"type":"nGram",
"max_gram":10,
"min_gram":3
}
},
"analyzer":{
"ngram_analyzer": {
"type": "custom",
"tokenizer":"standard",
"filter": ["ngram_filter"]
},
"german_text":{
"type":"custom",
"tokenizer":"standard",
"filter":["germansnow"]
},
"default_index":{
"type":"combo",
"sub_analyzers":[
"german_text",
"ngram_analyzer"
]
},
"default_search":{
"type":"combo",
"sub_analyzers":[
"german_text"
]
}
}
}
}
}'
echo
curl -XPOST 'localhost:9200/test/test?pretty&refresh' -d '{
"text_de" : "Auch auf der diesjährigen Berlinale zeigen wir wieder unter dem Titel HESSEN TALENTS 2012 Produktionen aus vier Hochschulen in zwei Screenings im Filmmarkt (EFM) – am Mittwoch, 15. Februar 2012 von 15 Uhr bis 17 Uhr im Cinemaxx 11 in der Voxstraße.\r\n\r\nViele der Filmemacher werden auf der Berlinale persönlich anwesend sein. Den Flyer mit allen Informationen zum diesjährigen HESSEN TALENTS Programm, den Filmen, sowie den Filmemachern gibt es unten unter Dateien als komprimiertes PDF zum Download. \r\n\r\nWeitere aktuelle Bilder der Hessen Talents auf der Berlinale gibt es auf der Facebookseite von Horst Martin. "
}'
echo
curl -XGET 'localhost:9200/test/_search?pretty' -d '{
"query": {
"text" : {
"text_de" : {"query":"Berlin"}
}
},
"highlight" : {
"fields":{
"text_de":{}
}
}
}'
echo
{"ok":true,"acknowledged":true}
{
"ok" : true,
"acknowledged" : true
}
{
"ok" : true,
"_index" : "test",
"_type" : "test",
"_id" : "V_mc0S_rQzCtAyd0ASEBjQ",
"_version" : 1
}
{
"took" : 5,
"timed_out" : false,
"_shards" : {
"total" : 5,
"successful" : 5,
"failed" : 0
},
"hits" : {
"total" : 1,
"max_score" : 0.014532784,
"hits" : [ {
"_index" : "test",
"_type" : "test",
"_id" : "V_mc0S_rQzCtAyd0ASEBjQ",
"_score" : 0.014532784, "_source" : {
"text_de" : "Auch auf der diesjährigen Berlinale zeigen wir wieder unter dem Titel HESSEN TALENTS 2012 Produktionen aus vier Hochschulen in zwei Screenings im Filmmarkt (EFM) – am Mittwoch, 15. Februar 2012 von 15 Uhr bis 17 Uhr im Cinemaxx 11 in der Voxstraße.\r\n\r\nViele der Filmemacher werden auf der Berlinale persönlich anwesend sein. Den Flyer mit allen Informationen zum diesjährigen HESSEN TALENTS Programm, den Filmen, sowie den Filmemachern gibt es unten unter Dateien als komprimiertes PDF zum Download. \r\n\r\nWeitere aktuelle Bilder der Hessen Talents auf der Berlinale gibt es auf der Facebookseite von Horst Martin. "
},
"highlight" : {
"text_de" : [ " Programm, den Filmen, sowie den Filmemachern gibt es unten unter Dateien als komprimiertes PDF<em>Berlin</em> zum Download", ". \r\n\r\nWeitere aktuelle Bilder der Hessen Talents auf der Berlinale gibt es auf der Facebookseite von Horst Martin. " ]
}
} ]
}
}
@bogn
Copy link
Author

bogn commented Apr 18, 2013

In the output.txt file you can see that it highlighted the word Berlin (search for </em) but at a position where the word didn't occur in the input text (search for PDF zum to see it in the input text). And depending on the ngram parameters the word to highlight wanders to place where it doesn't belong. For example setting max_gram to 7 makes the highlight excerpt start like this:
"Programm, den<em>Berlin</em> Filmen"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment