Module: PdfSearch
- Defined in:
- lib/pdf_dir.rb,
lib/pdf_search.rb
Defined Under Namespace
Classes: PdfDir, PdfIndex, WebServer
Constant Summary
collapse
- ElasticSearchClient =
Elasticsearch::Client.new log: true, host: ENV['ELASTICSEARCH_URL']
- GemDir =
[File.dirname(__FILE__), '..']
Class Method Summary
collapse
Class Method Details
.create_elasticsearch_index ⇒ Object
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
# File 'lib/pdf_search.rb', line 27
def self.create_elasticsearch_index
`curl -XPUT -H "Content-Type: application/json" http://localhost:9200/_all/_settings -d '{"index.blocks.read_only_allow_delete": null}'`
ElasticSearchClient.indices.create(
index: 'pdf_pages',
body: {
mappings: {
document: {
properties: {
text: {
type: 'text'
}
}
}
}
}
)
return true
rescue Elasticsearch::Transport::Transport::Errors::BadRequest => e
if /"type":"(?:resource|index)_already_exists_exception"/ =~ e.message
return false
else
raise e
end
end
|
.relative_to_gem_path(path_array) ⇒ Object
13
14
15
|
# File 'lib/pdf_search.rb', line 13
def self.relative_to_gem_path(path_array)
File.expand_path(File.join(GemDir + path_array))
end
|
.start_elasticsearch ⇒ Object
23
24
25
|
# File 'lib/pdf_search.rb', line 23
def self.start_elasticsearch
`sudo service elasticsearch start`
end
|
.start_webserver ⇒ Object
17
18
19
20
21
|
# File 'lib/pdf_search.rb', line 17
def self.start_webserver
web_server = WebServer.new
web_server.start
return web_server.daemon.pid.pid
end
|
.wrap_elastic_request ⇒ Object
55
56
57
58
|
# File 'lib/pdf_search.rb', line 55
def self.wrap_elastic_request
`curl -XPUT -H "Content-Type: application/json" http://localhost:9200/_all/_settings -d '{"index.blocks.read_only_allow_delete": null}'`
yield
end
|