Skip to content
Snippets Groups Projects

Initial implementation of an elasticsearch indexer in Go

Merged Nick Thomas requested to merge 1-initial-implementation into master
All threads resolved!
1 file
+ 252
124
Compare changes
  • Side-by-side
  • Inline
+ 252
124
@@ -6,20 +6,126 @@ import (
var indexMapping = `
{
"mappings": {
"snippet": {
"properties": {
"author_id": {
"type": "integer"
"settings": {
"index": {
"analysis": {
"filter": {
"my_stemmer": {
"name": "light_english",
"type": "stemmer"
},
"code": {
"type": "pattern_capture",
"preserve_original": "1",
"patterns": [
"(\\p{Ll}+|\\p{Lu}\\p{Ll}+|\\p{Lu}+)",
"(\\d+)"
]
}
},
"content": {
"type": "text",
"index_options": "offsets"
"char_filter": {
"code_mapping": {
"type": "mapping",
"mappings": [
". => ' '"
]
}
},
"analyzer": {
"default": {
"filter": [
"standard",
"lowercase",
"my_stemmer"
],
"tokenizer": "standard"
},
"code_search_analyzer": {
"filter": [
"lowercase",
"asciifolding"
],
"char_filter": [
"code_mapping"
],
"type": "custom",
"tokenizer": "standard"
},
"path_analyzer": {
"filter": [
"lowercase",
"asciifolding"
],
"type": "custom",
"tokenizer": "path_tokenizer"
},
"sha_analyzer": {
"filter": [
"lowercase",
"asciifolding"
],
"type": "custom",
"tokenizer": "sha_tokenizer"
},
"code_analyzer": {
"filter": [
"code",
"lowercase",
"asciifolding"
],
"char_filter": [
"code_mapping"
],
"type": "custom",
"tokenizer": "standard"
},
"my_ngram_analyzer": {
"filter": [
"lowercase"
],
"tokenizer": "my_ngram_tokenizer"
}
},
"tokenizer": {
"my_ngram_tokenizer": {
"token_chars": [
"letter",
"digit"
],
"min_gram": "2",
"type": "nGram",
"max_gram": "3"
},
"sha_tokenizer": {
"token_chars": [
"letter",
"digit"
],
"min_gram": "5",
"type": "edgeNGram",
"max_gram": "40"
},
"path_tokenizer": {
"reverse": "true",
"type": "path_hierarchy"
}
}
},
}
},
"mappings": {
"milestone": {
"_parent": {
"type": "project"
},
"_routing": {
"required": true
},
"properties": {
"created_at": {
"type": "date"
},
"file_name": {
"description": {
"type": "text",
"index_options": "offsets"
},
@@ -29,18 +135,12 @@ var indexMapping = `
"project_id": {
"type": "integer"
},
"state": {
"type": "text"
},
"title": {
"type": "text",
"index_options": "offsets"
},
"updated_at": {
"type": "date"
},
"visibility_level": {
"type": "integer"
}
}
},
@@ -75,105 +175,17 @@ var indexMapping = `
"type": "text",
"index_options": "offsets"
},
"project_id": {
"type": "integer"
},
"updated_at": {
"type": "date"
}
}
},
"issue": {
"_parent": {
"type": "project"
},
"_routing": {
"required": true
},
"properties": {
"assignee_id": {
"type": "integer"
},
"author_id": {
"type": "integer"
},
"confidential": {
"type": "boolean"
},
"created_at": {
"type": "date"
},
"description": {
"type": "text",
"index_options": "offsets"
},
"id": {
"noteable_id": {
"type": "integer"
},
"iid": {
"type": "integer"
"noteable_type": {
"type": "keyword"
},
"project_id": {
"type": "integer"
},
"state": {
"type": "text"
},
"title": {
"type": "text",
"index_options": "offsets"
},
"updated_at": {
"type": "date"
}
}
},
"project": {
"properties": {
"archived": {
"type": "boolean"
},
"created_at": {
"type": "date"
},
"description": {
"type": "text",
"index_options": "offsets"
},
"id": {
"type": "integer"
},
"last_activity_at": {
"type": "date"
},
"last_pushed_at": {
"type": "date"
},
"name": {
"type": "text",
"index_options": "offsets"
},
"name_with_namespace": {
"type": "text",
"index_options": "offsets",
"analyzer": "my_ngram_analyzer"
},
"namespace_id": {
"type": "integer"
},
"path": {
"type": "text",
"index_options": "offsets"
},
"path_with_namespace": {
"type": "text",
"index_options": "offsets"
},
"updated_at": {
"type": "date"
},
"visibility_level": {
"type": "integer"
}
}
},
@@ -280,7 +292,7 @@ var indexMapping = `
}
}
},
"merge_request": {
"issue": {
"_parent": {
"type": "project"
},
@@ -288,9 +300,15 @@ var indexMapping = `
"required": true
},
"properties": {
"assignee_id": {
"type": "integer"
},
"author_id": {
"type": "integer"
},
"confidential": {
"type": "boolean"
},
"created_at": {
"type": "date"
},
@@ -304,26 +322,12 @@ var indexMapping = `
"iid": {
"type": "integer"
},
"merge_status": {
"type": "text"
},
"source_branch": {
"type": "text",
"index_options": "offsets"
},
"source_project_id": {
"project_id": {
"type": "integer"
},
"state": {
"type": "text"
},
"target_branch": {
"type": "text",
"index_options": "offsets"
},
"target_project_id": {
"type": "integer"
},
"title": {
"type": "text",
"index_options": "offsets"
@@ -333,7 +337,7 @@ var indexMapping = `
}
}
},
"milestone": {
"merge_request": {
"_parent": {
"type": "project"
},
@@ -341,6 +345,9 @@ var indexMapping = `
"required": true
},
"properties": {
"author_id": {
"type": "integer"
},
"created_at": {
"type": "date"
},
@@ -351,7 +358,27 @@ var indexMapping = `
"id": {
"type": "integer"
},
"project_id": {
"iid": {
"type": "integer"
},
"merge_status": {
"type": "text"
},
"source_branch": {
"type": "text",
"index_options": "offsets"
},
"source_project_id": {
"type": "integer"
},
"state": {
"type": "text"
},
"target_branch": {
"type": "text",
"index_options": "offsets"
},
"target_project_id": {
"type": "integer"
},
"title": {
@@ -514,6 +541,107 @@ var indexMapping = `
}
}
}
},
"project": {
"properties": {
"archived": {
"type": "boolean"
},
"created_at": {
"type": "date"
},
"description": {
"type": "text",
"index_options": "offsets"
},
"id": {
"type": "integer"
},
"issues_access_level": {
"type": "integer"
},
"last_activity_at": {
"type": "date"
},
"last_pushed_at": {
"type": "date"
},
"merge_requests_access_level": {
"type": "integer"
},
"name": {
"type": "text",
"index_options": "offsets"
},
"name_with_namespace": {
"type": "text",
"index_options": "offsets",
"analyzer": "my_ngram_analyzer"
},
"namespace_id": {
"type": "integer"
},
"path": {
"type": "text",
"index_options": "offsets"
},
"path_with_namespace": {
"type": "text",
"index_options": "offsets"
},
"repository_access_level": {
"type": "integer"
},
"snippets_access_level": {
"type": "integer"
},
"updated_at": {
"type": "date"
},
"visibility_level": {
"type": "integer"
},
"wiki_access_level": {
"type": "integer"
}
}
},
"snippet": {
"properties": {
"author_id": {
"type": "integer"
},
"content": {
"type": "text",
"index_options": "offsets"
},
"created_at": {
"type": "date"
},
"file_name": {
"type": "text",
"index_options": "offsets"
},
"id": {
"type": "integer"
},
"project_id": {
"type": "integer"
},
"state": {
"type": "text"
},
"title": {
"type": "text",
"index_options": "offsets"
},
"updated_at": {
"type": "date"
},
"visibility_level": {
"type": "integer"
}
}
}
}
}
Loading