Skip to content

Instantly share code, notes, and snippets.

@keremcankabadayi
Last active May 10, 2018 11:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save keremcankabadayi/c43b4f7c7fc1128da0fdd2f5210f9ff6 to your computer and use it in GitHub Desktop.
Save keremcankabadayi/c43b4f7c7fc1128da0fdd2f5210f9ff6 to your computer and use it in GitHub Desktop.
Elastic-Percolator Research - Issues
GET /_cat/indices?v
DELETE *
PUT /my-index
{
"settings": {
"analysis": {
"analyzer": {
"standard_lowercase_example": {
"type": "custom",
"tokenizer": "whitespace",
"filter": ["lowercase"]
},
"turkish_lowercase_example": {
"type": "custom",
"tokenizer": "whitespace",
"filter": ["turkish_lowercase"]
}
},
"filter": {
"turkish_lowercase": {
"type": "lowercase",
"language": "turkish"
}
}
}
},
"mappings": {
"_doc": {
"properties": {
"title": {
"type": "text",
"analyzer": "standard_lowercase_example"
},
"query": {
"type": "percolator"
}
}
}
}
}
POST /my-index/_doc/
{
"query": {
"span_near" : {
"clauses" : [
{ "span_term" : { "title" : "idari" } },
{ "span_term" : { "title" : "yargının" } },
{ "span_term" : { "title" : "gelişimi" } }
],
"slop" : 0,
"in_order" : true
}
}
}
GET /my-index/_search
{
"query" : {
"percolate" : {
"field": "query",
"document" : {
"title" : "Dünya Mirası Sözleşmesi 20. komutancıkcı kerem-betül geldi İdari Yargının Gelişimi"
}
}
},
"highlight": {
"fields": {
"title": {
"number_of_fragments" : 3,
"fragment_size" : 1500
}
}
}
}
// see indexes
GET /_cat/indices?v
// delete all indexes
DELETE *
//creating percolator index
PUT /my-index
{
"mappings": {
"_doc": {
"properties": {
"message": {
"type": "text"
},
"query": {
"type": "percolator"
}
}
}
}
}
//creating percolator index with analyzer
PUT /my-index
{
"settings": {
"analysis": {
"analyzer": {
"standard_lowercase_example": {
"type": "custom",
"tokenizer": "whitespace",
"filter": ["lowercase"]
},
"turkish_lowercase_example": {
"type": "custom",
"tokenizer": "whitespace",
"filter": ["turkish_lowercase"]
}
},
"filter": {
"turkish_lowercase": {
"type": "lowercase",
"language": "turkish"
}
}
}
},
"mappings": {
"_doc": {
"properties": {
"title": {
"type": "text",
"analyzer": "standard_lowercase_example"
},
"query": {
"type": "percolator"
}
}
}
}
}
//put a percolate query. ids are auto-incremented. "message" is field name.
POST /my-index/_doc/?refresh
{
"query" : {
"match" : {
"message" : "seçkin"
}
}
}
//new document
//fragment_size is size of our document in the result. if we want to see all document, number must be big.
GET /my-index/_search
{
"query" : {
"percolate" : {
"field": "query",
"document" : {
"message" : "Anasayfa, seçkin maddelerden birinin giriş bölümünün sergilendiği bir bölüme sahiptir. Bu bölümde, okuyuculara Vikipedi'nin ürettiği en başarılı içerik örnekleri sergilenmektedir. Bu ayın anasayfaya çıkan seçkin madde listesi buradan görülebilir. Maddenin anasayfaya çıkabilmesi için seçkin madde statüsünde olması gerekmektedir (herhangi bir maddeyi aday göstermek için bkz: Vikipedi:Seçkin madde adayları). Seçkin madde statüsü alan maddeler, seçilme sıralarına göre kronolojik olarak anasayfaya çıkarlar. Seçkin içerik sorumluları, anasayfaya çıkacak olan maddelerin düzeninden ve sistemin sağlıklı işleyişinden sorumludur. Konuyla ilgili bilgi almak veya herhangi bir sorun bildirmek için lütfen sorumluların sayfasına mesaj bırakın."
}
}
},
"highlight": {
"fields": {
"message": {
"number_of_fragments" : 20,
"no_match_size": 50,
"fragment_size" : 200
}
}
}
//result
{
"took": 82,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"skipped": 0,
"failed": 0
},
"hits": {
"total": 1,
"max_score": 0.51040375,
"hits": [
{
"_index": "my-index",
"_type": "_doc",
"_id": "0IFCRGMBALUwXXg1w9QP",
"_score": 0.51040375,
"_source": {
"query": {
"match": {
"message": "seçkin"
}
}
},
"fields": {
"_percolator_document_slot": [
0
]
},
"highlight": {
"message": [
"Anasayfa, <em>seçkin</em> maddelerden birinin giriş bölümünün sergilendiği bir bölüme sahiptir. Bu bölümde, okuyuculara Vikipedi'nin ürettiği en başarılı içerik örnekleri sergilenmektedir. Bu ayın anasayfaya çıkan <em>seçkin</em> madde listesi buradan görülebilir. Maddenin anasayfaya çıkabilmesi için <em>seçkin</em> madde statüsünde olması gerekmektedir (herhangi bir maddeyi aday göstermek için bkz: Vikipedi:Seçkin madde adayları). <em>Seçkin</em> madde statüsü alan maddeler, seçilme sıralarına göre kronolojik olarak anasayfaya çıkarlar. <em>Seçkin</em> içerik sorumluları, anasayfaya çıkacak olan maddelerin düzeninden ve sistemin sağlıklı işleyişinden sorumludur. Konuyla ilgili bilgi almak veya herhangi bir sorun bildirmek için lütfen sorumluların sayfasına mesaj bırakın."
]
}
}
]
}
}
//if we add this percolator query
POST /my-index/_doc/?refresh
{
"query" : {
"match" : {
"message" : "seçkin maddelerden"
}
}
}
//result is not what we expect. at first match "maddelerden" is matching at end of the message.
{
"took": 76,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"skipped": 0,
"failed": 0
},
"hits": {
"total": 2,
"max_score": 0.9080545,
"hits": [
{
"_index": "my-index",
"_type": "_doc",
"_id": "0YFERGMBALUwXXg1RdTW",
"_score": 0.9080545,
"_source": {
"query": {
"match": {
"message": "seçkin maddelerden"
}
}
},
"fields": {
"_percolator_document_slot": [
0
]
},
"highlight": {
"message": [
"Anasayfa, <em>seçkin</em> <em>maddelerden</em> birinin giriş bölümünün sergilendiği bir bölüme sahiptir. Bu bölümde, okuyuculara Vikipedi'nin ürettiği en başarılı içerik örnekleri sergilenmektedir. Bu ayın anasayfaya çıkan <em>seçkin</em> madde listesi buradan görülebilir. Maddenin anasayfaya çıkabilmesi için <em>seçkin</em> madde statüsünde olması gerekmektedir (herhangi bir maddeyi aday göstermek için bkz: Vikipedi:Seçkin madde adayları). <em>Seçkin</em> madde statüsü alan maddeler, seçilme sıralarına göre kronolojik olarak anasayfaya çıkarlar. <em>Seçkin</em> içerik sorumluları, anasayfaya çıkacak olan maddelerin düzeninden ve sistemin sağlıklı işleyişinden sorumludur. Konuyla ilgili bilgi almak veya herhangi bir sorun bildirmek için lütfen sorumluların sayfasına mesaj bırakın <em>maddelerden</em>."
]
}
},
{
"_index": "my-index",
"_type": "_doc",
"_id": "0IFCRGMBALUwXXg1w9QP",
"_score": 0.51123756,
"_source": {
"query": {
"match": {
"message": "seçkin"
}
}
},
"fields": {
"_percolator_document_slot": [
0
]
},
"highlight": {
"message": [
"Anasayfa, <em>seçkin</em> maddelerden birinin giriş bölümünün sergilendiği bir bölüme sahiptir. Bu bölümde, okuyuculara Vikipedi'nin ürettiği en başarılı içerik örnekleri sergilenmektedir. Bu ayın anasayfaya çıkan <em>seçkin</em> madde listesi buradan görülebilir. Maddenin anasayfaya çıkabilmesi için <em>seçkin</em> madde statüsünde olması gerekmektedir (herhangi bir maddeyi aday göstermek için bkz: Vikipedi:Seçkin madde adayları). <em>Seçkin</em> madde statüsü alan maddeler, seçilme sıralarına göre kronolojik olarak anasayfaya çıkarlar. <em>Seçkin</em> içerik sorumluları, anasayfaya çıkacak olan maddelerin düzeninden ve sistemin sağlıklı işleyişinden sorumludur. Konuyla ilgili bilgi almak veya herhangi bir sorun bildirmek için lütfen sorumluların sayfasına mesaj bırakın maddelerden."
]
}
}
]
}
}
// to get over above issue we should use span like this.
POST /my-index/_doc/
{
"query": {
"span_near" : {
"clauses" : [
{ "span_term" : { "message" : "seçkin" } },
{ "span_term" : { "message" : "maddelerden" } }
],
"slop" : 0,
"in_order" : true
}
}
}
//new document same the previous one
GET /my-index/_search
{
"query" : {
"percolate" : {
"field": "query",
"document" : {
"message" : "Anasayfa, seçkin maddelerden birinin giriş bölümünün sergilendiği bir bölüme sahiptir. Bu bölümde, okuyuculara Vikipedi'nin ürettiği en başarılı içerik örnekleri sergilenmektedir. Bu ayın anasayfaya çıkan seçkin madde listesi buradan görülebilir. Maddenin anasayfaya çıkabilmesi için seçkin madde statüsünde olması gerekmektedir (herhangi bir maddeyi aday göstermek için bkz: Vikipedi:Seçkin madde adayları). Seçkin madde statüsü alan maddeler, seçilme sıralarına göre kronolojik olarak anasayfaya çıkarlar. Seçkin içerik sorumluları, anasayfaya çıkacak olan maddelerin düzeninden ve sistemin sağlıklı işleyişinden sorumludur. Konuyla ilgili bilgi almak veya herhangi bir sorun bildirmek için lütfen sorumluların sayfasına mesaj bırakın maddelerden."
}
}
},
"highlight": {
"fields": {
"message": {
"number_of_fragments" : 3,
"fragment_size" : 1500
}
}
}
}
//result is like.
// as we see, only one match because we use span_term
{
"took": 82,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"skipped": 0,
"failed": 0
},
"hits": {
"total": 1,
"max_score": 0.5780211,
"hits": [
{
"_index": "my-index",
"_type": "_doc",
"_id": "my-span-query",
"_score": 0.5780211,
"_source": {
"query": {
"span_near": {
"clauses": [
{
"span_term": {
"message": "seçkin"
}
},
{
"span_term": {
"message": "maddelerden"
}
}
],
"slop": 0,
"in_order": true
}
}
},
"fields": {
"_percolator_document_slot": [
0
]
},
"highlight": {
"message": [
"Anasayfa, <em>seçkin</em> <em>maddelerden</em> birinin giriş bölümünün sergilendiği bir bölüme sahiptir. Bu bölümde, okuyuculara Vikipedi'nin ürettiği en başarılı içerik örnekleri sergilenmektedir. Bu ayın anasayfaya çıkan seçkin madde listesi buradan görülebilir. Maddenin anasayfaya çıkabilmesi için seçkin madde statüsünde olması gerekmektedir (herhangi bir maddeyi aday göstermek için bkz: Vikipedi:Seçkin madde adayları). Seçkin madde statüsü alan maddeler, seçilme sıralarına göre kronolojik olarak anasayfaya çıkarlar. Seçkin içerik sorumluları, anasayfaya çıkacak olan maddelerin düzeninden ve sistemin sağlıklı işleyişinden sorumludur. Konuyla ilgili bilgi almak veya herhangi bir sorun bildirmek için lütfen sorumluların sayfasına mesaj bırakın maddelerden."
]
}
}
]
}
}
//using span_multi with prefix. it's highlighting starting with "vik"
POST /my-index/_doc/my-span-query?refresh&pretty
{
"query": {
"span_multi" : {
"match":{
"prefix" : { "message" : { "value" : "vik" } }
}
}
}
}
//result like
{
"took": 44,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"skipped": 0,
"failed": 0
},
"hits": {
"total": 1,
"max_score": 0.79610133,
"hits": [
{
"_index": "my-index",
"_type": "_doc",
"_id": "my-span-query",
"_score": 0.79610133,
"_source": {
"query": {
"span_multi": {
"match": {
"prefix": {
"message": {
"value": "vik"
}
}
}
}
}
},
"fields": {
"_percolator_document_slot": [
0
]
},
"highlight": {
"message": [
"Bu bölümde, okuyuculara <em>Vikipedi'nin</em> ürettiği en başarılı içerik örnekleri sergilenmektedir. Bu ayın anasayfaya çıkan seçkin madde listesi buradan görülebilir. Maddenin anasayfaya çıkabilmesi için seçkin madde statüsünde olması gerekmektedir (herhangi bir maddeyi aday göstermek için bkz: <em>Vikipedi:Seçkin</em> madde adayları). Seçkin madde statüsü alan maddeler, seçilme sıralarına göre kronolojik olarak anasayfaya çıkarlar. Seçkin içerik sorumluları, anasayfaya çıkacak olan maddelerin düzeninden ve sistemin sağlıklı işleyişinden sorumludur. Konuyla ilgili bilgi almak veya herhangi bir sorun bildirmek için lütfen sorumluların sayfasına mesaj bırakın maddelerden."
]
}
}
]
}
}
@enojen
Copy link

enojen commented May 9, 2018

büyük harf olunca tanımıyor

@keremcankabadayi
Copy link
Author

mirası kelimesinde büyük i'den kaynaklı sıkıntı var

@keremcankabadayi
Copy link
Author

abcd dediğimiz lowercase öncesi değeri linklerken kullan, yoksa tüm titlelar lowercase oluyor

@keremcankabadayi
Copy link
Author

parantez, tire, virgül dönüşümleri yapılacak

@keremcankabadayi
Copy link
Author

title.json içerisinde Bilim kelimesi geçen çok title var

@keremcankabadayi
Copy link
Author

en, madde, kimya gibi tek olup birden fazla title'da geçen kelime mevcut

@keremcankabadayi
Copy link
Author

main() içindeki print kısmına try catch ekle

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