aboutsummaryrefslogtreecommitdiffhomepage
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/sisu/v5/dal_doc_str.rb3
-rw-r--r--lib/sisu/v5/db_import.rb30
2 files changed, 27 insertions, 6 deletions
diff --git a/lib/sisu/v5/dal_doc_str.rb b/lib/sisu/v5/dal_doc_str.rb
index 5b6c03bf..87e5c908 100644
--- a/lib/sisu/v5/dal_doc_str.rb
+++ b/lib/sisu/v5/dal_doc_str.rb
@@ -196,7 +196,8 @@ module SiSU_DAL_DocumentStructureExtract
? term_node
: (term_node + '+0')
term_nodes << term_node
- @use,plus=rgx_idx_ocn_seg.match(term_node)[1,2]
+ use,plus=rgx_idx_ocn_seg.match(term_node)[1,2]
+ @use=use.strip
idx_hash[@use]={ sub: [], plus: plus } unless idx_hash[@use] and defined? idx_hash[@use]
when Array
subterm_nodes=[]
diff --git a/lib/sisu/v5/db_import.rb b/lib/sisu/v5/db_import.rb
index 5f89c968..bcb22de8 100644
--- a/lib/sisu/v5/db_import.rb
+++ b/lib/sisu/v5/db_import.rb
@@ -209,6 +209,26 @@ module SiSU_DbImport
end
def pf_db_import_transaction_close
end
+ def book_idx_hash_to_str(book_idx)
+ book_idx=book_idx ? book_idx : ''
+ book_idx_str,book_subidx_part='',''
+ if not book_idx.empty?
+ book_idx_str=''
+ book_idx.each_pair do |k0,v0|
+ book_idx_str << %{#{k0}+#{v0[:plus]}}
+ book_subidx_part=''
+ if v0[:sub].length > 0
+ v0[:sub].each do |subterms|
+ subterms.each_pair do |k1,v1|
+ book_subidx_part << %{\n #{k1}+#{v1[:plus]} | }
+ end
+ end
+ book_idx_str=book_idx_str + ':' + book_subidx_part
+ end
+ end
+ end
+ book_idx_str
+ end
def db_import_metadata #% import documents - populate database
print %{ #{@cX.grey}import documents dbi_unit #{@cX.off} } if @opt.cmd =~/vVM/
@tp={}
@@ -285,7 +305,7 @@ module SiSU_DbImport
plaintext=@col[:body].dup
plaintext=strip_markup(plaintext)
@col[:plaintext]=clean_searchable_text(plaintext)
- book_idx=data.idx ? data.idx : ''
+ book_idx=book_idx_hash_to_str(data.idx)
@col[:book_idx]=clean_searchable_text(book_idx)
if @en[0] then @en_a,@en_z=@en[0].first,@en[0].last
end
@@ -321,7 +341,7 @@ module SiSU_DbImport
plaintext=@col[:body].dup
plaintext=strip_markup(plaintext)
@col[:plaintext]=clean_searchable_text(plaintext)
- book_idx=data.idx ? data.idx : ''
+ book_idx=book_idx_hash_to_str(data.idx)
@col[:book_idx]=clean_searchable_text(book_idx)
@en_a,@en_z=@en[0].first,@en[0].last if @en[0]
@en_a_asterisk,@en_z_asterisk=@en_ast[0].first,@en_ast[0].last if @en_ast[0]
@@ -353,7 +373,7 @@ module SiSU_DbImport
plaintext=@col[:body].dup
plaintext=strip_markup(plaintext)
@col[:plaintext]=clean_searchable_text(plaintext)
- book_idx=data.idx ? data.idx : ''
+ book_idx=book_idx_hash_to_str(data.idx)
@col[:book_idx]=clean_searchable_text(book_idx)
@en_a,@en_z=@en[0].first,@en[0].last if @en[0]
@en_a_asterisk,@en_z_asterisk=@en_ast[0].first,@en_ast[0].last if @en_ast[0]
@@ -383,7 +403,7 @@ module SiSU_DbImport
plaintext=@col[:body].dup
plaintext=strip_markup(plaintext)
@col[:plaintext]=clean_searchable_text(plaintext)
- book_idx=data.idx ? data.idx : ''
+ book_idx=book_idx_hash_to_str(data.idx)
@col[:book_idx]=clean_searchable_text(book_idx)
@en_a,@en_z=@en[0].first,@en[0].last if @en[0]
@en_a_asterisk,@en_z_asterisk=@en_ast[0].first,@en_ast[0].last if @en_ast[0]
@@ -441,7 +461,7 @@ module SiSU_DbImport
plaintext=@col[:body].dup
plaintext=strip_markup(plaintext)
@col[:plaintext]=clean_searchable_text(plaintext)
- book_idx=data.idx ? data.idx : ''
+ book_idx=book_idx_hash_to_str(data.idx)
@col[:book_idx]=clean_searchable_text(book_idx)
t=SiSU_DbTuple::LoadDocuments.new(@conn,@col,@opt,@file_maint)
@tuple_array << t.tuple