WO2018066144A1 - Program for generation of indexed data, method for generation of indexed data, system for generation of indexed data, search program, search method, and search system - Google Patents

Program for generation of indexed data, method for generation of indexed data, system for generation of indexed data, search program, search method, and search system Download PDF

Info

Publication number
WO2018066144A1
WO2018066144A1 PCT/JP2016/080034 JP2016080034W WO2018066144A1 WO 2018066144 A1 WO2018066144 A1 WO 2018066144A1 JP 2016080034 W JP2016080034 W JP 2016080034W WO 2018066144 A1 WO2018066144 A1 WO 2018066144A1
Authority
WO
WIPO (PCT)
Prior art keywords
bitmap
data
search
file
index
Prior art date
Application number
PCT/JP2016/080034
Other languages
French (fr)
Japanese (ja)
Inventor
ゆかり 袴田
隼毅 袴田
片岡 正弘
亮佑 兵庫
Original Assignee
富士通株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 富士通株式会社 filed Critical 富士通株式会社
Priority to JP2018543574A priority Critical patent/JP6575688B2/en
Priority to PCT/JP2016/080034 priority patent/WO2018066144A1/en
Publication of WO2018066144A1 publication Critical patent/WO2018066144A1/en
Priority to US16/280,046 priority patent/US11182341B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • G06F16/316Indexing structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • G06F16/137Hash-based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/221Column-oriented storage; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures

Definitions

  • the present invention relates to an indexed data generation program, an indexed data generation method, an indexed data generation system, a search program, a search method, and a search system.
  • a PDF file created for printing may be used not only for printing and storage purposes but also for searching and the like.
  • a PDF file created for printing is required to have a small file size, it cannot be used for advanced search.
  • it is known to embed metadata such as position information such as a character string and attribute information in a PDF file by extending a tag.
  • it is known to generate an index that associates a form item with the number of pages with a specific key.
  • the index has only page information. Can't search for words or numbers. For this reason, even if the index is referred to, it is necessary to confirm whether or not the search candidates individually correspond to the search target items after narrowing down the search candidates by the search.
  • search candidate when searching for a numerical value in a form, even if a numerical value of “100” is searched, a search candidate whose “unit price” is “100”, “quantity” is “100”, and “amount” is “100”. Since it is displayed, it is necessary to confirm whether it corresponds to the target item. Similarly, when searching for words, even if you search for “Kamakura”, search candidates with “branch name” as “Kamakura”, “address” as “Kamakura”, and “name” as “Kamakura” Is displayed.
  • the purpose is to quickly determine whether or not the item is a search target item.
  • the indexed data generation program causes a computer to execute processing for generating form output format data from form data including a form having a plurality of columns.
  • the indexed data generation program stores index information for words, characters, or numerical values in a computer, and includes data for each attribute corresponding to each attribute of the plurality of columns and each of the plurality of columns included in the form output format data.
  • a process of generating index information including position information that can identify the positional relationship in is executed.
  • the indexed data generation program causes a computer to execute a process of outputting an output file including index information and form output format data.
  • FIG. 1 is a diagram illustrating an example of the flow of a form file generation process according to the first embodiment.
  • FIG. 2 is a diagram illustrating an example of the bitmap index according to the first embodiment.
  • FIG. 3 is a diagram illustrating an example of the hashed index generation process according to the first embodiment.
  • FIG. 4 is a diagram illustrating a configuration example of an encoded file.
  • FIG. 5 is a diagram illustrating an example of an image in which a search target is input.
  • FIG. 6 is a diagram illustrating an example of a search process according to the first embodiment.
  • FIG. 7 is a diagram illustrating an example of the character string determination process according to the first embodiment.
  • FIG. 8 is a diagram illustrating an example of search condition determination processing according to the first embodiment.
  • FIG. 1 is a diagram illustrating an example of the flow of a form file generation process according to the first embodiment.
  • FIG. 2 is a diagram illustrating an example of the bitmap index according to the first embodiment.
  • FIG. 9 is a diagram illustrating an example of the hashed bitmap restoration process according to the first embodiment.
  • FIG. 10 is a functional block diagram illustrating the configuration of the form output device according to the first embodiment.
  • FIG. 11 is a diagram illustrating an example of a flowchart of the form file generation process according to the first embodiment.
  • FIG. 12 is a functional block diagram illustrating the configuration of the search device according to the first embodiment.
  • FIG. 13 is a diagram illustrating an example of a flowchart of search processing according to the first embodiment.
  • FIG. 14 is a diagram illustrating an example of form output format data and a bitmap index according to the second embodiment.
  • FIG. 15 is a diagram illustrating an example of an image in which a search target is input.
  • FIG. 10 is a functional block diagram illustrating the configuration of the form output device according to the first embodiment.
  • FIG. 11 is a diagram illustrating an example of a flowchart of the form file generation process according to the first embodiment.
  • FIG. 12 is
  • FIG. 16 is a diagram illustrating an example of search processing according to the second embodiment.
  • FIG. 17 is a diagram illustrating an example of form output format data and a bitmap index according to the third embodiment.
  • FIG. 18 is a diagram illustrating an example of an image in which a search target is input.
  • FIG. 19 is a diagram illustrating an example of search processing according to the third embodiment.
  • FIG. 20 is a diagram illustrating a hardware configuration example of a computer.
  • FIG. 21 is a diagram illustrating a configuration example of a program operating on a computer.
  • FIG. 22 is a diagram illustrating a configuration example of an apparatus in the system according to the embodiment.
  • FIG. 1 is a diagram illustrating an example of the flow of a form file generation process according to the first embodiment.
  • the form output device generates form output format data from the input form data.
  • the form output device based on the generated form output format data, attributes (hereinafter may be referred to as “items”) of a plurality of items (columns) of the form, and a plurality of items included in the form output format data.
  • a bitmap index including position information capable of specifying the positional relationship in the form data between the data corresponding to each item is generated.
  • the form output device generates a form file including form output format data and a bitmap index.
  • the form data includes a form having a plurality of items.
  • a form output device that executes a form file generation process reads a file 3 including form data.
  • “3” of the file 3 indicates that the file ID is “3”.
  • the file 3 has “date”, “product code”, “product name”, and the like as items of the form.
  • the item “date” includes “2015/7/15”.
  • the item “product code” includes “12345”.
  • product name includes “a1a2a3”.
  • “a1a2a3” will be described as “refrigerator” displayed in Japanese kanji.
  • the form items are not limited to these.
  • the form output device generates form output format data from the form data included in the file 3.
  • the form output format data is CSV (Comma-Separated Values) format data.
  • the form output format data includes a record composed of a plurality of items of data separated by commas.
  • FIG. 1 shows an example having one record as an example, the form output format data includes a plurality of records.
  • the form output device encodes the file 3 with the form output form data including the character string composed of words and characters and the numerical string composed of numerical values, and generates the encoded data and the encoding dictionary.
  • the character string and the numerical value string will be simply referred to as “character string”.
  • the form output device encodes “2015/7/15” of the item “date” into “A000h”.
  • the form output device encodes “12345” in the item “product code” into “B010h”.
  • the form output device encodes “refrigerator” in the item “product name” into “C021h”.
  • the form output device encodes for each word.
  • Liquid Crystal Television is divided into “Liquid”, “Crystal”, and “Television”, and each is encoded.
  • Each data of the form output format data is encoded for each item.
  • the form output device encodes the form output format data and generates encoded data.
  • the form output device encodes each character when the character string of the form output format data is Japanese. For example, “refrigerator” is divided into “cold”, “brewery”, and “warehouse”, and each is encoded. For example, the form output device encodes “cold” into “D000h”. For example, the form output device encodes “Kura” into “D001h”. For example, the form output device encodes “warehouse” into “D002h”.
  • the code used for the encoded data is an encoded code for each character string.
  • word ID a code obtained by encoding each data of the form output format data.
  • the coding dictionary has a static dictionary and a dynamic dictionary.
  • Static dictionaries are based on general English dictionaries, Japanese dictionaries, textbooks, etc., and identify the frequency of words that appear in a document. ID).
  • the static dictionary a static code that is a code corresponding to each word is registered in advance.
  • the dynamic dictionary is a dictionary in which words that are not registered in the static dictionary are associated with dynamically assigned dynamic codes (codes). Examples of words that are not registered in the static dictionary include words with low appearance frequency (low frequency words), characters, unknown words, numerical values, time, and tags.
  • the unknown word here is a word that is not registered in the static dictionary and has a feature that appears repeatedly in the document to be encoded.
  • words associated with the dynamic code are registered in the order of appearance of words not registered in the static dictionary. Note that the encoding dictionary for generating encoded data and the encoding dictionary for generating a bitmap index may be different dictionaries.
  • the form output device generates information about the word ID for the file ID. Further, the form output device generates information on the word ID and the position of the character string indicated by the word ID for the file ID. Also, the form output device generates information on the form item and the position of the form item for the file ID. The form output device sets the presence or absence of the character string indicated by the word ID for the file 3 in the two-dimensional bitmap index BI1 based on the generated information. The form output device also sets the word ID and the position of the character string indicated by the word ID for the file 3 in the first three-dimensional bitmap index BI2 based on the generated information. Further, the form output device sets the item of the form and the position indicated by the form item with respect to the file 3 in the second three-dimensional bitmap index BI3 based on the generated information.
  • the word ID encoded for each character is used in the two-dimensional bitmap index BI1, the first three-dimensional bitmap index BI2, and the like.
  • the character string is “refrigerator” in Japanese, three word IDs corresponding to “cold”, “brewery”, and “warehouse” are used.
  • the character string is the alphabet “Liquid Crystal Television”, three word IDs corresponding to “Liquid”, “Crystal”, and “Television” are used.
  • the two-dimensional bitmap index BI1 is an index for full-text search, and is a bit string obtained by concatenating a pointer specifying a character string and a bit indicating the presence or absence of the character string in each file. That is, the two-dimensional bitmap index BI1 refers to a bitmap obtained by indexing the presence / absence of each file with respect to a character string included in the file. During the search process, this bitmap can be used as an index indicating whether or not a character string to be searched is included. For example, a word ID is adopted as a pointer for designating a character string. For example, the character string itself may be used as the pointer for designating the character string.
  • the two-dimensional bitmap index BI1 is a collection of bitmaps for each character string indicated by a pointer that designates a character string. As shown in FIG. 1, the X axis of the two-dimensional bitmap index BI1 represents a file ID, and the Y axis represents a word ID. That is, the two-dimensional bitmap index BI1 indicates the presence / absence of the character string indicated by the word ID for each file indicated by the plurality of file IDs.
  • the first three-dimensional bitmap index BI2 is a bitmap index in which the position of the character string in each file is added to the two-dimensional bitmap index BI1.
  • the first three-dimensional bitmap index BI2 refers to a bitmap obtained by indexing positions existing for each file with respect to a character string included in the file.
  • the X-axis of the first three-dimensional bitmap index BI2 represents Offset (position)
  • the Y-axis represents a word ID
  • the Z-axis represents a file ID.
  • the first three-dimensional bitmap index BI2 represents the position for each file indicated by the plurality of file IDs of the character string indicated by the word ID. That is, the first three-dimensional bitmap index BI2 is index information including position information that can specify the positional relationship in the form data between character strings.
  • the second three-dimensional bitmap index BI3 is a bitmap in which the position of the form item in each file is indexed. As shown in FIG. 1, the X axis of the second three-dimensional bitmap index BI3 represents Offset (position), the Y axis represents a form item, and the Z axis represents a file ID. That is, the second three-dimensional bitmap index BI3 is index information including position information that can specify the positional relationship of the form items in the form data.
  • the form output device encodes a character string included in the form item of the file 3 into a word ID.
  • the form output device encodes each character into a word ID.
  • “refrigerator” of “product name” is Japanese, it is encoded into a word ID for each character.
  • the word ID of “Cold” in “Product Name” is “D000h”. It is assumed that the position of “cold” in the file 3 is “2”.
  • the form output device sets the presence or absence of the character indicated by the word ID “D000h” for the file 3 in the two-dimensional bitmap index BI1 based on the generated information.
  • the bit value “1” indicating that “D000h” exists in the file with the file ID “3” is a bit corresponding to the file ID “3”.
  • the bit value “0” is set in the bit corresponding to the file ID.
  • the form output device sets the position “2” of the character indicated by the word ID “D000h” in the first three-dimensional bitmap index BI2 for the file 3 based on the generated information.
  • the bit corresponding to the position “2” of the ID “3” is set. For example, when “D000h” does not exist at a predetermined position of the file, a bit value “0” is set to a bit corresponding to the predetermined position of the file ID.
  • the form output device sets the position of the item “product name” of the form in the second three-dimensional bitmap index BI3 with respect to the file 3 based on the generated information.
  • a bit value “1” indicating that the item “product name” of the form starts from the position “2” of the file 3 has a file ID. It is set to the bit corresponding to position “2” of “3”.
  • the bit value “1” is set only for the bit corresponding to the position where the item of the form starts. For example, in the file 3, the item “product name” of the form starts from the position “2” and ends at the position “4”. Therefore, for the item next to the item “product name” in the form, the bit value “1” is set to the bit corresponding to the position “5” in the second three-dimensional bitmap index BI3.
  • the form output device includes a plurality of items of the form and each bit including position information that can specify the positional relationship in the form data between the word IDs obtained by encoding the form data.
  • Map type indexes BI1 to BI3 are generated.
  • the form output device generates each hashed index from each bitmap type index BI1 to BI3.
  • the form output device outputs an encoded file having the index information of each hashed index and a form file including the form output format data as an output file.
  • the hashed index will be described later.
  • FIG. 2 is a diagram illustrating an example of the bitmap index according to the first embodiment.
  • a bitmap type index for a form item in the file 3 will be described as an example.
  • a bitmap type index for the word ID corresponding to “2015/7/15” of the form item “date” and the item “refrigerator” of the form in the file 3 will be described as an example.
  • the position and the bit corresponding to the position are allocated in the order of the items from the top record of the file 3. Then, the bit value of the bit corresponding to the item position is set to “1”.
  • the position and the bit corresponding to the position are assigned to the item of the last form of a certain record, the next position and the next bit corresponding to the position are assigned to the first item of the next record.
  • the bitmap of the item “date” of the form is “... 1000001”. This indicates that data relating to the item “date” of the form of the first record is stored in the 0th bit at the position “0” of the file 3.
  • the sixth bit at the position “6” in the file 3 indicates that data relating to the item “date” of the form of the next record is stored.
  • data relating to the item “date” of the form is stored in each bit corresponding to the positions “12”, “21”, “29”, and “37”.
  • bit map of the item “product code” in the form is “... 10000010”. This indicates that data relating to “product code” of the form item of the first record is stored in the first bit at the position “1” of the file 3.
  • the seventh bit at the position “7” of the file 3 indicates that data relating to the item “product code” of the form of the next record is stored.
  • data relating to the item “product code” of the form is stored in each bit corresponding to the positions “13”, “22”, “30”, and “38”.
  • bit map of the item “product name” of the form is “... 100,000,100”, and the bit map of the item “unit price” of the form is “... 100,000,000”.
  • data relating to the item “product name” is stored in the second bit to the fourth bit at the positions “2” to “4” of the file 3.
  • it indicates that data relating to the item “product name” is stored in the 8th to 10th bits of the position “8” to “10” of the file 3.
  • the item “product” Stores data related to "name”.
  • the position and the bit corresponding to the position are assigned from the top record of the file 3 in the order of the word ID. Then, the bit value of the bit corresponding to the position of the word ID is set to “1”.
  • the position and the bit corresponding to the position are assigned to the last word ID of a certain record, the next position and the next bit corresponding to the position are assigned to the first word ID of the next record.
  • bitmap of the word ID “A000h” (numerical value “2015/7/15)” is “... 0001”. This indicates that the numerical value “2015/7/15” corresponding to the word ID “A000h” is stored in the 0th bit and not stored in other bits.
  • the bitmap of the word ID “D000h” (character “cold”) is “... 0100”. This indicates that the character “cold” corresponding to the word ID “D000h” is stored in the second bit and not stored in other bits.
  • the bitmap of the word ID “D001h” (character “Kura”) is “... 1000”. This indicates that the character “Kura” corresponding to the word ID “D001h” is stored in the third bit and not stored in other bits.
  • the bitmap of the word ID “D002h” (the character “box”) is “... 10000”. This indicates that the character “kura” corresponding to the word ID “D002h” is stored in the fourth bit and not stored in other bits.
  • bitmap type index is, for example, a bitmap type transposed index storing form items, position information of word IDs in form data, and the like.
  • FIG. 3 is a diagram illustrating an example of the hashed index generation process according to the first embodiment.
  • FIG. 3 illustrates an example of hashing a bitmap of the two-dimensional bitmap index BI1 that represents a file ID as the X axis and a word ID as the Y axis.
  • the form output device generates a plurality of hashed bitmaps to which a hash function is applied for each bitmap corresponding to the word ID.
  • the form output device assumes a 43-bit register and, as an example, based on the hash values (bottom) of 29 and 31, hash the bitmap of the two-dimensional bitmap index BI1.
  • the form output device sets the value of each bit of the bitmap to the remainder of dividing the position of each bit of the bitmap corresponding to the word ID by the bottom for one hashed bitmap. Set. The position of each bit in the bitmap corresponds to each file ID.
  • the form output device sets the value of each bit of the bitmap in the remainder position obtained by dividing the position of each bit of the bitmap by the base 29 for the hashed bitmap h11 of the base 29.
  • the bit value “1” at the 35th bit position of the bitmap is set to the sixth bit of the hashed bitmap h11.
  • the bit value “1” at the 42nd bit position of the bitmap is set to the 13th bit of the hashed bitmap h11.
  • the form output device sets the value of each bit of the bitmap in the remainder position obtained by dividing the position of each bit of the bitmap by the base 31 for the hashed bitmap h12 of the base 31.
  • the bit value “1” at the 35th bit position of the bitmap is set to the fourth bit of the hashed bitmap h12.
  • the bit value “1” at the 42nd bit position of the bitmap is set to the 11th bit of the hashed bitmap h12. That is, the form output device sets each bit from the 0th bit of the bitmap in order from the 0th bit of the hashed bitmap, and sets up to the (base-1) th bit. Then, the form output device wraps again and sets a value obtained by OR operation with the value already set in the hashed bitmap from the 0th bit of the bitmap. As a result, the form output device generates hashed bitmaps h11 and h12 for the bitmap.
  • the form output device generates hashed bitmaps h11 and h12 for the bitmap of the two-dimensional bitmap index BI1 in the word ID, respectively.
  • the form output device generates a two-dimensional hashed index HI1 in which the generated hashed bitmaps h11 and h12 are collected.
  • the form output device generates a plurality of hashed bitmaps to which a hash function is applied from the bitmap of the first three-dimensional bitmap index BI2 as in the case of the bitmap of the two-dimensional bitmap index BI1. . Then, the form output device generates a first three-dimensional hashed index HI2 in which the generated hashed bitmaps are collected. Similarly, the form output device generates a second three-dimensional hashed index HI3 from the second three-dimensional bitmap index BI3.
  • the hash values (bottom) are 29 and 31, for example.
  • FIG. 4 is a diagram illustrating a configuration example of an encoded file.
  • the encoded file has a header part, encoded data, and a trailer part.
  • the encoded data stores an encoded word ID group for each of a plurality of files.
  • the trailer unit stores the address of each file, dynamic dictionary (common / individual) information, hashed index (2D / 3D), and the like.
  • the address of each file indicates the storage destination address of each encoded data obtained by encoding a plurality of files.
  • the address of each file is a relative address from the beginning of the encoded data.
  • Individual dynamic dictionary information corresponds to dynamic dictionary information for each of a plurality of files.
  • the common dynamic dictionary information corresponds to the dynamic dictionary information for the entire plurality of files.
  • the header part stores a pointer to the address of each file stored in the trailer part, a pointer to a dynamic dictionary, and a pointer to a hashed index (2D / 3D).
  • the form output device stores the encoded data indicating the encoded results in the encoded file, and stores the stored addresses at the addresses of the files.
  • the address of the file to be decrypted is referred to from the address of each file in the trailer section using a pointer to the address of each file in the header section.
  • a pointer to the dynamic dictionary in the header part is used to refer to the dynamic dictionary.
  • the address of the hashed index to be searched is referred to from the address of each hashed index of the trailer unit using a pointer to the address of each hashed index of the header unit.
  • FIG. 5 is a diagram illustrating an example of an image in which a search target is input.
  • “form”, “page”, and “record” can be selected as the effective range of the search condition.
  • the effective range of the search condition represents a unit for performing the search. For example, when “form” is selected, the search is performed in units of forms. For example, when “page” is selected, the search is performed in units of pages. For example, when “all” is selected, the search is performed without designating the unit for performing the search.
  • the search device for example, it is possible to search using three search conditions as item conditions.
  • search condition may be directly input.
  • search target character string is divided for each character and the search is performed.
  • FIG. 6 is a diagram illustrating an example of search processing according to the first embodiment.
  • the search device that executes the search process refers to the two-dimensional hashed index HI1 based on the input “refrigerator” to be searched.
  • the search device acquires a file ID in which each word ID corresponding to “cold”, “stored”, and “stored” exists. Then, the search device specifies the word ID and the file ID in the first three-dimensional hashed index HI2, and specifies the position information of the word ID.
  • the search device specifies the position information of the item “product name” of the form by designating the “product name” and the file ID of the search condition in the second three-dimensional hashed index HI3.
  • the search device When receiving the input of the search target character string, the search device refers to the two-dimensional hashed index HI1 and extracts a hashed bitmap for the word ID indicated by the received search target.
  • the search device divides the “refrigerator” received as the search target into “cold”, “stored”, and “storage”, and reads the word ID corresponding to each character.
  • the search device reads the word ID “D000h” corresponding to “cold”.
  • the search device reads the word ID “D001h” corresponding to “Kura”.
  • the search device reads the word ID “D002h” corresponding to “box”.
  • the search device extracts the hashed bitmap h4 for the word ID “D000h” from the two-dimensional hashed index HI1.
  • the hashed bitmap h4 includes a hashed bitmap h41 at the base 29 and a hashed bitmap h42 at the base 31.
  • the search device extracts the hashed bitmap h5 for the word ID “D001h” from the two-dimensional hashed index HI1.
  • the hashed bitmap h5 includes a hashed bitmap h51 at the base 29 and a hashed bitmap h52 at the base 31.
  • the search device extracts the hashed bitmap h6 for the word ID “D002h” from the two-dimensional hashed index HI1.
  • the hashed bitmap h6 includes a hashed bitmap h61 on the bottom 29 and a hashed bitmap h62 on the bottom 31.
  • the search device restores a hashed bitmap for each extracted word ID.
  • the hashed bitmap restoration process will be described later.
  • the restoration result is represented by a bitmap corresponding to the word ID.
  • the search device restores the hashed bitmap h4 for the word ID “D000h” and outputs the bitmap b4 as the restoration result.
  • the search device restores the hashed bitmap h5 for the word ID “D001h” and outputs the bitmap b5 as the restoration result.
  • the search device restores the hashed bitmap h6 for the word ID “D002h” and outputs the bitmap b6 as the restoration result.
  • the search device performs an AND operation on the bitmap b4 with the word ID “D000h”, the bitmap b5 with the word ID “D001h”, and the bitmap with the word ID “D002h”.
  • the search device outputs a file ID whose bit of the AND result is ON (“1”). That is, the search device narrows down file IDs of files including “cold” indicated by the word ID “D000h”, “kura” indicated by the word ID “D001h”, and “box” indicated by the word ID “D002h”. .
  • “3” is output as the file ID.
  • the search device refers to the first three-dimensional hashed index HI2 and extracts a hashed bitmap for the word ID and the file ID.
  • the search device extracts the hashed bitmap h7 for the word ID “D000h” and the file ID “3” from the first three-dimensional hashed index HI2.
  • the hashed bitmap h7 includes a hashed bitmap h71 at the base 29 and a hashed bitmap h72 at the base 31.
  • the search device extracts the hashed bitmap h8 for the word ID “D001h” and the file ID “3” from the first three-dimensional hashed index HI2.
  • the hashed bitmap h8 includes a hashed bitmap h81 at the bottom 29 and a hashed bitmap h82 at the bottom 31. Further, the search device extracts the hashed bitmap h9 for the word ID “D002h” and the file ID “3” from the first three-dimensional hashed index HI2.
  • the hashed bitmap h9 includes a hashed bitmap h91 at the bottom 29 and a hashed bitmap h92 at the bottom 31.
  • the search device restores the extracted hashed bitmaps h7 to h9.
  • the restoration result is represented by a bit map corresponding to the word ID and the file ID.
  • the search device restores the hashed bitmap h7 for the word ID “D000h” and the file ID “3”, and outputs the bitmap b7 as the restoration result.
  • the search device restores the hashed bitmap h8 for the word ID “D001h” and the file ID “3”, and outputs the bitmap b8 as a restoration result.
  • the search device restores the hashed bitmap h9 for the word ID “D002h” and the file ID “3”, and outputs the bitmap b9 as the restoration result.
  • the search device specifies an offset (position) where the bits of the bitmaps b7 to b9 output as the restoration result indicate ON (“1”). For example, the search device specifies an offset (position) whose bit value is “1” in the bitmap b7 of the file ID “3” and the word ID “D000h”. Here, Offset (position) “2” is specified. Further, the search device specifies an Offset (position) having a bit value “1” in the bitmap b8 of the file ID “3” and the word ID “D001h”. Here, Offset (position) “3” is specified. Further, the search device specifies an Offset (position) having a bit value “1” in the bitmap b9 of the file ID “3” and the word ID “D002h”. Here, Offset (position) “4” is specified.
  • the search device determines whether or not the search target character string is included in the file based on the specified Offset (position).
  • FIG. 7 is a diagram illustrating an example of the character string determination process according to the first embodiment.
  • the search device determines the word ID according to the character string to be searched.
  • Bitmaps b7 to b9 are arranged.
  • the search device arranges bitmap b7, bitmap b8, and bitmap b9 in this order. Then, the search device shifts the bit whose bit value is “1” in the “cold” bitmap b7, which is the first character of the character string to be searched, to the left by one. As a result, in the “cold” bitmap b7, the third bit is “1”.
  • the search device performs an AND operation on the shifted “cold” bitmap b7 and the next character “kura” bitmap b8.
  • the search device shifts a bit whose bit value is “1” in the AND result bitmap to the left by one.
  • the fourth bit is “1”.
  • the search device performs an AND operation on the bitmap of the shifted AND result and the bitmap “b9” of “K” as the next character.
  • the search device determines that the search target is included in the file. Note that when any result of the AND operation is “0”, the search device determines that the search target is not included in the file.
  • the search device determines whether or not the search target is included in the file by combining the AND operation and the bit shift.
  • the search device refers to the second three-dimensional hashed index HI3 and extracts a hashed bitmap for the form item included in the file ID.
  • the search device extracts the hashed bitmap for the form item included in the file ID “3” from the second three-dimensional hashed index HI3.
  • the search device uses the second three-dimensional hashed index for the hashed bitmaps h10 to h13 corresponding to the items “date”, “product code”, “product name”, “unit price”, etc. of the form included in the file 3. Extract from HI3.
  • the hashed bitmap h10 includes a hashed bitmap h101 at the bottom 29 and a hashed bitmap h102 at the bottom 31.
  • the hashed bitmap h11 includes a hashed bitmap h111 at the bottom 29 and a hashed bitmap h112 at the bottom 31.
  • the hashed bitmap h12 includes a base 29 hashed bitmap h121 and a base 31 hashed bitmap h122.
  • the hashed bitmap h13 includes a hashed bitmap h131 at the base 29 and a hashed bitmap h132 at the base 31.
  • the search device restores the extracted hashed bitmaps h10 to h13.
  • the restoration result is represented by a file ID and a bitmap corresponding to the item of the form.
  • the search apparatus restores the hashed bitmaps h10 to h13 and outputs the bitmaps b10 to b13 as the restoration results.
  • the search device specifies an offset (position) in which the bits of the bitmaps b10 to b13 output as the restoration result indicate ON (“1”). For example, in the bitmap b10 of the file ID “3” and the item “date” of the form, the search device specifies an offset (position) where the bit value of the bitmap b10 is “1”. Here, for example, Offset (position) “0” is specified. Similarly, the search device specifies an offset (position) where the bit values of the bitmaps b11 to b13 are “1” for each item of the form.
  • the search device determines whether or not the search target character string is included in the search condition item based on the specified offset (position).
  • FIG. 8 is a diagram illustrating an example of search condition determination processing according to the first embodiment.
  • the search device performs a search condition determination process based on the offset (position) of the identified form item and the result of the AND operation on the “refrigerator” described with reference to FIG.
  • the search device determines whether the Offset (position) where the bit value is “1” is included in the item “product name” selected as the search condition in the final AND result bitmap in FIG. 7. To do.
  • the bit value of the fourth bit is “1”.
  • the bit value of the fourth bitmap is “1”.
  • the fifth bit is “1”. Therefore, it can be seen that characters included in the item “product name” are stored in the second to fourth bits in the bitmap.
  • the search device determines that the character string “refrigerator” to be searched exists in the item “product name” in the file 3. For example, when the position where the bit value is “1” in the final AND result bit map is the first bit or the fifth bit, the search device sets the character string “refrigerator” to be searched. However, it is determined that the item “product name” does not exist.
  • the search device outputs, for example, a file name including the character string “refrigerator” in the item “product name” of the form.
  • the search device may display, for example, a file name including the character string “refrigerator” in the item “product name” of the form, and a character string before and after including “refrigerator”.
  • the search device uses the hashed index (bitmap type index) to search for the search target character string that satisfies the search condition, and outputs the search result. Thereby, the search device can quickly output a search result for the character string to be searched.
  • FIG. 9 is a diagram illustrating an example of the hashed bitmap restoration process according to the first embodiment.
  • a case where the hashed bitmap h4 is restored will be described as an example.
  • the search device expands the hashed bitmaps h41 and h42 included in the hashed bitmap h4 into bitmaps (restoration 1).
  • the search device adds the position of each bit in the hashed bitmap to the value obtained by multiplying the base by an integer (0 to) for the restoration destination bitmap of one base hashed bitmap.
  • the value of each bit of the hashed bitmap is set at the position.
  • the search device adds the position of each bit of the hashed bitmap h41 to the value obtained by multiplying the base 29 by “0” for the restoration destination bitmap b41 of the hashed bitmap h41 of the base 29.
  • the value of each bit of the hashed bitmap h41 is set.
  • the retrieval apparatus performs hashing at the position obtained by adding the position of each bit of the hashed bitmap h41 to the value obtained by multiplying the base 29 by “1” for the restoration destination bitmap b41 of the hashed bitmap h41 of the base 29.
  • the value of each bit of the bitmap h41 is set.
  • the search device repeats until the value of the bit at the position of the maximum bit of the bitmap b41 in the bottom 29 of the restoration destination is set.
  • the search device adds the position of each bit of the hashed bitmap h42 to the value obtained by multiplying the base 31 by “0” for the restoration destination bitmap b42 of the hashed bitmap h42 of the base 31.
  • the value of each bit of the hashed bitmap h42 is set.
  • the retrieval apparatus performs hashing at the position obtained by adding the position of each bit of the hashed bitmap h42 to the value obtained by multiplying the base 31 by “1” for the restoration destination bitmap b42 of the hashed bitmap h42 of the base 31.
  • the value of each bit of the bitmap h42 is set.
  • the search device repeats until the value of the bit at the position of the maximum bit in the restoration destination bitmap b42 is set.
  • the search device performs an AND operation on the bit at the corresponding position of each restored bitmap (restoration 2).
  • the search device performs an AND operation on the bitmap b41 restored from the hashed bitmap h41 in the base 29 and the bitmap b42 restored from the hashed bitmap h42 in the base 31.
  • the retrieval device outputs the AND result bitmap b4 as a restoration result.
  • the search device also restores the hashed bitmap of the first three-dimensional hashed index HI2 in the same manner as the hashed bitmap of the two-dimensional hashed index HI1.
  • the search device also restores the hashed bitmap of the second three-dimensional hashed index HI3 in the same manner as the hashed bitmap of the two-dimensional hashed index HI1.
  • FIG. 10 is a functional block diagram illustrating the configuration of the form output device 100 according to the first embodiment.
  • the form output device 100 includes a control unit 110 and a storage unit 120.
  • the control unit 110 is a processing unit that executes the index generation processing shown in FIG.
  • the control unit 110 has an internal memory for storing programs defining various processing procedures and control data, and executes various processes using these. And the control part 110 respond
  • the storage unit 120 corresponds to a storage device such as a nonvolatile semiconductor memory element such as a flash memory or FRAM (registered trademark).
  • the storage unit 120 includes an encoding dictionary 121, a two-dimensional hashed index 122, a first three-dimensional hashed index 123, a second three-dimensional hashed index 124, and encoded data 125.
  • the form output format data generation unit 111 reads the encoding target file into the storage area.
  • the form output format data generation unit 111 generates form output format data from the form data included in the read file.
  • the form output format data generation unit 111 outputs the generated form output format data to the encoding processing unit 112.
  • the form output format data generation unit 111 extracts the page information of the form data from the form data.
  • the form output format data generation unit 111 searches for a definition file and extracts page information before generating form output format data.
  • the form output format data generation unit 111 may extract page information in the process of generating form output format data.
  • the form output format data generation unit 111 adds page information to the form output format data.
  • the form output format data generation unit 111 may output it as page information separately from the form output format data.
  • the encoding processing unit 112 includes an encoding unit 112a and an index generation unit 112b.
  • the encoding unit 112 a encodes a character string included in the form output format data based on the encoding dictionary 121, and generates encoded data 125.
  • the encoding unit 112a determines whether or not a character string included in the form output format data is registered in the static dictionary. As an example, the encoding unit 112a determines whether or not the character string hits the bit filter of the static dictionary. When the character string is registered in the static dictionary, the encoding unit 112a encodes the character string based on the static dictionary.
  • the encoding unit 112a encodes a character string into a static code (word ID) corresponding to the character string based on a static dictionary.
  • the encoding unit 112a outputs the encoded word ID to the index generation unit 112b.
  • the encoding unit 112a encodes the character string based on the dynamic dictionary when the character string is not registered in the static dictionary. As an example, the encoding unit 112a determines whether or not a character string is stored in the buffer unit of the dynamic dictionary. When the character string is not stored in the buffer unit of the dynamic dictionary, the encoding unit 112a stores the character string in the buffer unit, and stores the storage position where the character string is stored and the stored data length in the address table. To store. The encoding unit 112a encodes the character string into a dynamic code (word ID) in the address table associated with the character string.
  • word ID dynamic code
  • the encoding unit 112a encodes the character string into a dynamic code (word ID) corresponding to the character string.
  • the encoding unit 112a outputs information including the encoded word ID and the position of the character string indicated by the word ID to the index generation unit 112b.
  • the index generation unit 112b generates a two-dimensional hashed index 122 based on the file ID of the file and the encoded word ID. For example, the index generation unit 112b receives information output from the encoding unit 112a. The index generation unit 112b generates a bitmap corresponding to the file ID of the file in which the word ID exists based on the received information. The index generation unit 112b generates a hashed bitmap using the base ⁇ and the base ⁇ for the generated bitmap. That is, the index generation unit 112b sets the presence or absence of the character string indicated by the word ID for the file in the two-dimensional hashed index 122.
  • the index generation unit 112b generates a hashed bitmap based on two hash values (bottom) for each bitmap corresponding to the word ID. That is, the index generation unit 112b sequentially sets each bit from the 0th bit of the bitmap from the 0th bit of the hashed bitmap, and sets up to the (base-1) th bit. Then, the index generation unit 112b loops again and sets a value obtained by OR operation with a value already set in the hashed bitmap from the 0th bit of the hashed bitmap.
  • the index generation unit 112b generates hashed bitmaps for the bitmaps corresponding to all the word IDs
  • the two-dimensional hashed index 122 in which the generated hashed bitmaps are collected is stored in the storage unit 120. To do.
  • the index generation unit 112b generates the first three-dimensional hashed index 123 based on the file ID of the file, the encoded word ID, and the position of the character string indicated by the word ID. For example, the index generation unit 112b generates a bitmap corresponding to the file ID of the file in which the word ID exists and the position of the word ID in the file based on the received information. The index generation unit 112b generates a hashed bitmap using the base ⁇ and the base ⁇ for the generated bitmap. That is, the index generation unit 112b sets the word ID and the position of the character string indicated by the word ID for the file (form data) in the first three-dimensional hashed index 123.
  • the index generation unit 112b generates the second three-dimensional hashed index 124 based on the file ID of the file, the form item, and the position of the form item. For example, the index generation unit 112b generates a bitmap corresponding to the file ID of the file in which the word ID exists and the position of the item of the form based on the received information. The index generation unit 112b generates a hashed bitmap using the base ⁇ and the base ⁇ for the generated bitmap. That is, the index generation unit 112b sets the position of the item of the form with respect to the file (form data) and the position of the form item in the form data in the second three-dimensional hashed index 124.
  • the index generation unit 112b stores the generated first three-dimensional hashed index 123 and second three-dimensional hashed index 124 in the storage unit 120.
  • the embedding unit 113 embeds an encoded file having a dynamic dictionary of the encoding dictionary 121, encoded data 125, and index information of each hashed index 122 to 124 into a form file, and generates an output file. .
  • a form file with an index is generated.
  • the embedding unit 113 embeds the encoded file in the extension area of the PDF file.
  • the embedding unit 113 compresses the encoded file together with the form definition body and generates an output file.
  • the output unit 114 transfers the output file to, for example, the search device 200 (see FIG. 12).
  • FIG. 11 is a diagram illustrating an example of a flowchart of the form file generation process according to the first embodiment.
  • the form file is a form file with an index.
  • the form output format data generation unit 111 reads the encoding target file into the storage area (S10).
  • the form output format data generation unit 111 generates form output format data from the form data included in the read file (S11).
  • the encoding unit 112a encodes the character string of the form output format data into the word ID based on the encoding dictionary 121 (S12). If the character string is not stored in the encoding dictionary 121 (static dictionary and dynamic dictionary), the encoding unit 112a newly encodes the character string and stores it in the dynamic dictionary.
  • the index generation unit 112b generates a two-dimensional hashed index 122 based on the file ID and word ID of the file (S13).
  • the index generation unit 112b generates the first three-dimensional hashed index 123 based on the file ID of the file, the word ID, and the position of the word ID in the file (S14).
  • the index generating unit 112b generates the second three-dimensional hashed index 124 based on the file ID of the file, the item of the form, and the position of the form item in the file (S15).
  • the embedding unit 113 embeds the encoded file having the dynamic dictionary of the encoding dictionary 121 and the hashed indexes 122 to 124 in the form file, and generates an output file (S16).
  • the output unit 114 outputs the generated output file to, for example, the search device 200 (see FIG. 12) (S17).
  • FIG. 12 is a functional block diagram illustrating the configuration of the search device 200 according to the first embodiment.
  • the search device 200 includes a control unit 210 and a storage unit 220.
  • the control unit 210 is a processing unit that executes the search processing shown in FIGS.
  • the control unit 210 has an internal memory for storing programs defining various processing procedures and control data, and executes various processes using these.
  • the control unit 210 corresponds to an electronic circuit such as a CPU or MPU.
  • the control unit 210 includes a search target reception unit 211, a first restoration unit 212, a second restoration unit 213, a search processing unit 214, and a search result output unit 215.
  • the storage unit 220 corresponds to a storage device such as a nonvolatile semiconductor memory element such as a flash memory or FRAM (registered trademark).
  • the storage unit 220 includes an encoding dictionary 221, a two-dimensional hashed index 222, a first three-dimensional hashed index 223, a second three-dimensional hashed index 224, a first restored bitmap 225, and a second restored bit.
  • a map 226, a third restored bitmap 227, a narrowed bitmap 228, and encoded data 229 are included.
  • the first restoration bitmap 225 is a bitmap in which the two-dimensional hashed index 222 is expanded.
  • the second restored bitmap 226 is a bitmap in which the first three-dimensional hashed index 223 is expanded.
  • the third restored bitmap 227 is a bitmap in which the second three-dimensional hashed index 224 is expanded.
  • the narrow-down bitmap 228 is a bitmap of an AND result obtained by performing an AND operation on the second restoration bitmap 226 when the search target is a character string represented by a plurality of word IDs.
  • the bit map of AND corresponds to, for example, the bit map indicating “refrigerator” of the AND result in FIG.
  • the search target reception unit 211 receives a search target.
  • the search target receiving unit 211 displays an input image as shown in FIG. 5 and receives search conditions and a search target character string.
  • the first restoration unit 212 extracts a hashed bitmap from the two-dimensional hashed index 222 corresponding to the word ID indicated by the search target character string.
  • the first restoration unit 212 expands the extracted hashed bitmap, and stores the expanded first restoration bitmap 225 in the storage unit 220.
  • the search target is composed of character strings represented by a plurality of word IDs
  • the first restoration unit 212 generates a plurality of hashed bitmaps from a plurality of two-dimensional hashed indexes 222 corresponding to each word ID. Extract. Then, the first restoration unit 212 expands each hashed bitmap, and stores the plurality of expanded bitmaps in the storage unit 220 as the first restoration bitmap 225.
  • the first restoration unit 212 extracts a file ID including all search target character strings from the first restoration bitmap 225. For example, when there are a plurality of first restoration bitmaps 225, the first restoration unit 212 performs an AND operation on the first restoration bitmap 225 as shown in FIG. The first restoration unit 212 extracts a file ID whose bit value of the AND result is “1”. The first restoration unit 212 outputs the extracted file ID to the second restoration unit 213.
  • the second restoration unit 213 extracts the hashed bitmap from the first three-dimensional hashed index 223 corresponding to the file ID and the word ID indicated by the character string to be searched.
  • the second restoration unit 213 expands the extracted hashed bitmap, and stores the expanded second restoration bitmap 226 in the storage unit 220.
  • the search target is composed of character strings represented by a plurality of word IDs
  • the second restoration unit 213 uses the hashed bits from the plurality of first three-dimensional hashed indexes 223 corresponding to the respective word IDs. Extract multiple maps. Then, the second restoration unit 213 expands each hashed bitmap, and stores the plurality of expanded bitmaps as the second restoration bitmap 226 in the storage unit 220.
  • the second restoration unit 213 extracts the hashed bitmap from the second three-dimensional hashed index 224 corresponding to the file ID and the form item.
  • the second restoration unit 213 expands the extracted hashed bitmap, and stores the expanded third restoration bitmap 227 in the storage unit 220.
  • the search processing unit 214 searches for a file including a character string to be searched and a position of the character string to be searched. For example, the search processing unit 214 extracts an Offset (position) whose bit value indicates “1” based on the second restoration bitmap 226. When the search target is composed of a character string represented by a plurality of word IDs, the search processing unit 214 sets an offset (position) whose bit value indicates “1” for each second restored bitmap 226. ,Extract. Then, the search processing unit 214 compares the sequence of word IDs, that is, the sequence of character strings with the sequence of Offset (position) where the bit value indicates “1”.
  • the search processing unit 214 determines whether or not the positional relationship of the character string in the search target matches the positional relationship of the word ID with the bit value “1”. For example, in the second restoration bitmap 226, the search processing unit 214 combines the AND operation and the bit shift as shown in FIG. Whether or not matches. When the positional relationship of the character string to be searched matches the positional relationship of the word ID, the search processing unit 214 stores the final AND result bitmap as the narrowed bitmap 228 in the storage unit 220.
  • the search processing unit 214 searches for a search target that satisfies the search condition. For example, when the search condition is selected in the item condition of FIG. 5, the search processing unit 214 selects a search target that satisfies the search condition based on the third restoration bitmap 227 and the refinement bitmap 228. Search for. For example, the search processing unit 214 determines that the Offset (position) where the bit value is “1” in the narrowed bitmap 228 is included in the Offset (position) indicating the search condition item in the third restoration bitmap 227. It is determined that the search condition is satisfied. In this way, the search processing unit 214 searches for a search target that satisfies the search condition.
  • the search result output unit 215 outputs the search result of the search processing unit 214.
  • the search result output unit 215 outputs, for example, a file name for a file that satisfies the search condition and includes a search target character string.
  • FIG. 13 is a diagram illustrating an example of a flowchart of search processing according to the first embodiment.
  • the search target reception unit 211 receives a search target (S20).
  • the first restoration unit 212 reads the two-dimensional hashed index 222 corresponding to the word ID representing the character string to be searched (S21).
  • the first restoration unit 212 extracts a hashed bitmap from the read two-dimensional hashed index 222 and expands it into the first restored bitmap 225 (S22). Based on the first restoration bitmap 225, the first restoration unit 212 extracts a file ID including all the word IDs representing the character string to be searched (S23).
  • the second restoration unit 213 reads the first three-dimensional hashed index 223 based on the file ID and the word ID (S24). The second restoration unit 213 extracts the hashed bitmap from the first three-dimensional hashed index 223 and expands it into the second restored bitmap 226 (S25). The second restoration unit 213 reads the second three-dimensional hashed index 224 based on the file ID and the item of the form selected as the search condition (S26). The second restoration unit 213 extracts a hashed bitmap from the second three-dimensional hashed index 224 and expands it into the third restored bitmap 227 (S27). Note that when the search condition is not selected, the second restoration unit 213 proceeds with the process without extracting the hashed bitmap from the second three-dimensional hashed index 224, for example.
  • the search processing unit 214 determines whether or not all the character strings to be searched are included in the second restoration bitmap 226 (S28). When the second restoration bitmap 226 includes all the search target character strings (Yes in S28), the search processing unit 214 determines whether or not the search condition is satisfied (S29). If no search condition is selected, the search processing unit 214 proceeds with the process without determining whether the search condition is satisfied, for example.
  • the search result output unit 215 outputs, for example, a file name for the file that satisfies the search condition and includes the search target character string (S30).
  • the search result output unit 215 indicates that there is no file including the search target character strings. (S31).
  • the search result output unit 215 outputs that the search condition does not exist as a search result (S32).
  • the form output device 100 generates form output format data from the form data.
  • the form output device 100 is index information for a character string, and includes position information that can specify a form item and a positional relationship in the form data between data corresponding to each form item included in the form output format data. Generate index information including.
  • the form output device 100 outputs an output file including index information and form output format data. Thereby, for example, the search device 200 can quickly determine whether there is a search target by referring to the index information.
  • the index information includes position information that can identify the item of the form and the positional relationship between the data included in the form output format data. Thereby, for example, the search device 200 can quickly determine whether or not the item corresponds to, for example, a search target item by referring to the index information.
  • the output file includes encoded data obtained by encoding the form output format data and index information in the extended area.
  • encoded data and index information are included in the PDF extension area.
  • the search device 200 can perform a search in a state where the form output format data is encoded, and can quickly determine whether or not the item corresponds to a search target item.
  • the form output device 100 embeds, for example, encoded data obtained by encoding form output format data and index information in the extension area of the PDF file. Thereby, the form output device 100 can reduce the file size of the output file. Further, the form output device 100 can shorten the time for generating a PDF file, for example.
  • the form output device 100 has index information separately from the encoded data. Thereby, for example, the search device 200 can quickly determine whether or not the item corresponds to the search target item by referring to the index information. Therefore, the search time can be shortened.
  • Encoded data is data in which the form output format data is encoded for each item of the form.
  • the form output apparatus 100 can create an output file compressed at a high compression rate, and can reduce the size of the output file.
  • the search device 200 can expand the encoded data for each item of the form, and can refer to or extract only a necessary part.
  • the first three-dimensional hashed indexes 123 and 223 that are index information are bitmap-type transposed index information with the file ID, the word ID, and the position information of the word ID as axes.
  • the form output device 100 can reduce the size of the output file as compared to, for example, embedding attribute information or position information such as a character string as metadata in a PDF file.
  • the search device 200 can quickly perform a search with high accuracy.
  • Example 2 will be described.
  • the same character string is included in different items.
  • FIG. 14 is a diagram illustrating the form output format data and the bitmap index according to the second embodiment.
  • the form output format data in FIG. 14 has “branch name”, “address”, “gender”, and the like as items of the form.
  • the item “branch name” includes “Kamakura branch”.
  • the item “address” includes “Kamakura city”.
  • the item “sex” includes “male”.
  • the encoding procedure, hashing procedure, and the like in the second embodiment are the same as those in the first embodiment, and the description in the second embodiment is omitted.
  • each character string will be described using each character string before being encoded into a word ID.
  • the bitmap type index generated by the form output device includes different form items, for example, “branch name” and “address”, and the character strings “kama” and “kura”. Therefore, in the bit map of “kick”, the bit values of the 0th bit and the 4th bit are set to “1”. In the bitmap in “kura”, the bit values of the first bit and the fifth bit are set to “1”.
  • FIG. 15 is a diagram illustrating an example of an image in which a search target is input.
  • “address” is selected as the search condition
  • “Kamakura” is input as the search target.
  • FIG. 16 is a diagram illustrating an example of search processing according to the second embodiment.
  • the mask bit is set in the bit map of the item “address” of the form, a bit map in which the bit values of the fourth to sixth bits are set to “1” is generated.
  • the search device performs an AND operation on the bitmap of the mask bit and the bitmap of the search result of “Kamakura” (the narrowed-down bitmap 228).
  • the search process for “Kamakura” is the same as the search process described with reference to FIG. Since “Kamakura” exists in the item “branch name” of the form and the item “address” of the form, the bit values of the first bit and the fifth bit in the bitmap of the search result of “Kamakura” are “ 1 ”is set. However, in the bit map of the mask bit, since the first bit does not correspond to the item “address” of the form, the bit value is set to “0”.
  • the search device narrows down search targets that satisfy the search condition by performing an AND operation. That is, even when the same character string is included in a plurality of items of the form, the search device can narrow down the position of the search target according to the search condition.
  • Example 3 will be described.
  • the same character string is included in different items and a search is performed in units of records.
  • FIG. 17 is a diagram illustrating the form output format data and the bitmap index according to the third embodiment.
  • the form output format data in FIG. 17 has “branch name”, “address”, and “gender” as the items of the form.
  • the form output format data may have other items.
  • the form output format data of FIG. 17 includes a plurality of records.
  • the records 1 and 2 include data different only in the item of “sex”. Note that the encoding procedure, hashing procedure, and the like in the third embodiment are the same as those in the first embodiment, and the description in the third embodiment is omitted. Further, hereinafter, each character string will be described using each character string before being encoded into a word ID.
  • the bitmap type index generated by the form output device includes character strings “Kama” and “kura” in different form items and different records. For this reason, in the bit map of “kick”, the bit values of the 0th bit, the 4th bit, the 8th bit, and the 12th bit are set to “1”. In the bitmap in “Kura”, the bit values of the first bit, the fifth bit, the ninth bit, and the thirteenth bit are set to “1”. In the bitmap indicating the record delimiters, “1” is set in the 0th, 8th, and 16th bits. In the bitmap indicating the record delimiter, the bit value of the bit corresponding to the first character string of the record is set to “1”. The bitmap indicating the record delimiter is generated as a three-dimensional bitmap index, for example, similarly to the bitmap for the form item. A description of the procedure is omitted.
  • FIG. 18 is a diagram illustrating an example of an image in which a search target is input.
  • search is selected in units of records.
  • “address” is set as the search condition 1
  • “Kamakura” is input as the search target.
  • “all” is set as the search condition 2 and “female” is input as the search target.
  • FIG. 19 is a diagram illustrating an example of search processing according to the third embodiment.
  • the mask bit is set in the bit map of the item “address” of the form, a bit map in which the bit values of the 4th to 6th bits and the 12th to 14th bits are set to “1” is generated.
  • the search device performs an AND operation on the bitmap of the mask bit and the bitmap of the search result of “Kamakura” (the narrowed-down bitmap 228).
  • the bit values of the 5th and 13th bits are “1” in the AND result bitmap. This indicates that “Kamakura” is included in the item “address” of the record 1 record and the item “address” of the record 2 record.
  • the search device When the search condition is “all”, for example, the search device outputs the bit map of the search result “female” as the AND result bit map as it is without setting the mask bit. In the bit map of the AND result of “ woman” to be searched, the bit value of the 15th bit is set to “1”. Note that when the search condition is “all”, the search device may perform an AND operation by setting mask bits in all the bitmaps of the form items.
  • the search device determines a record satisfying the search condition based on the AND result bitmap, the AND result bitmap of the “female” to be searched, and the bitmap indicating the record delimiter position.
  • the search device sets the bit value in the bit map of the AND result and the bit map of the AND result of the “female” to be searched to the 0th to 7th bits indicating the record 1. It is determined whether or not “1” is set.
  • the search device uses the bit of the AND result bit map and the bit map of the “female” AND result bit map indicating the record 2 in the 8th to 15th bits.
  • the search device determines that record 1 does not satisfy the search condition.
  • the bit value of the AND result bitmap of the search target “woman” is set to “1”, and the bit value of the AND result bitmap is set to “1”. Is set. Therefore, the search device determines that record 2 satisfies the search condition.
  • the search device narrows down and outputs records 2 that satisfy the search condition and include “Kamakura” and “Woman” to be searched. That is, even when the same character string is included in a plurality of records and a plurality of items of the form, the search device can narrow down the search target in units of records according to the search conditions.
  • the search device 200 When there are a plurality of files including search objects, for example, the search device 200 according to the embodiment counts the number of search objects for each file, and outputs a file preferentially as the number of search objects is increased. May be. For example, the search device 200 outputs files in the order that includes many search targets. As a result, it is possible to quickly find a file containing a large number of search targets.
  • each bit map is hashed based on the hash values (bottom) of 29 and 31 assuming a 32-bit register.
  • one bit map is described as 44 bits.
  • the hash values (bottom) of 29 and 31 are examples, and are not limited to this.
  • the number of bits in the bitmap is also an example and is not limited to this.
  • the two hash values (bases) may be determined according to the number of character strings in the plurality of files. For example, if the number of character strings is 10,000, the two bases are selected so that the two-dimensional matrix represented by the remainder divided by one base and the remainder divided by the other base is about 10,000.
  • the two bases may be adjacent prime numbers.
  • Two prime numbers to be selected are 97 and 101 as an example when the number of matrices is 10,000.
  • the least common multiple is about 10,000
  • a surplus set obtained by one hash and the other hash for a character string does not collide with a surplus set obtained for another character string. It is based on the assumption that it will be (non-overlapping).
  • the form output device 100 uses each hashed bitmap based on two hash values (bottom) for each of the bitmap corresponding to the word ID and the bitmap corresponding to the word ID and the file ID. It explained that it generates.
  • the form output device 100 may detect a hash collision (hash noise) when generating a hashed bitmap. For example, since an extremely high-frequency character string exists in a plurality of files, bit values at a plurality of positions in a bitmap corresponding to the extremely high-frequency character string are set to “1”. Then, when the bitmap is hashed, “1” may be set redundantly at the same position in the hashed bitmap. Examples of the extremely high frequency character string include “the” and “on”.
  • the form output apparatus 100 may perform hash collision reduction with respect to hash noise, and reduce hash noise by measuring a 0/1 ratio or dividing a bitmap. For example, the form output apparatus 100 uses the presence / absence information of the bitmap corresponding to the hashed bitmap in which the collision has occurred when any one of the hashed bitmaps continuously causes a collision (1 / 0) ratios. If the ratio of “1” is greater than the threshold, the form output device 100 divides the bitmap corresponding to the hashed bitmap in which the collision has occurred. As an example, the form output device 100 extracts bits at even-numbered positions in a bitmap corresponding to a hashed bitmap in which a collision has occurred, and newly generates a bitmap.
  • the form output apparatus 100 extracts bits at odd-numbered positions in the bitmap corresponding to the hashed bitmap in which the collision has occurred, and newly generates a bitmap. Then, the form output device 100 stores the divided new bitmap as, for example, a low-frequency word area as a division destination. The form output device 100 sets a division destination for one of the two hashed bitmaps. Then, the form output device 100 generates a hashed bitmap based on the two hash values (bottom) for each divided bitmap after dividing the bitmap. Thereby, even if the data of the hashed bitmaps collide, the form output device 100 divides the even-numbered data and the odd-numbered data of the bitmap before hashing and performs hashing respectively. Thus, data collision can be avoided.
  • the form output device 100 for example, based on a plurality of adjacent hash values (bottom), for example, two-dimensional (word ID axis and file ID axis) and three-dimensional (word ID axis) It has been explained that a hashed index is generated by applying hashing to the file ID axis and the character string position axis, the form item axis, and the file ID and form item position axis.
  • the form output device 100 may use a block axis instead of the file axis. That is, the presence / absence information of the word ID may be in units of blocks.
  • the form output device 100 sets a word ID for each character and generates a bitmap index.
  • the form output device 100 may set a word ID for each word and generate a bitmap index.
  • processing procedure, control procedure, specific name, information including various data and parameters shown in the embodiment can be arbitrarily changed unless otherwise specified.
  • FIG. 20 is a diagram illustrating a hardware configuration example of the computer 1.
  • the computer 1 includes, for example, a processor 301, a RAM (Random Access Memory) 302, a ROM (Read Only Memory) 303, a drive device 304, a storage medium 305, an input interface (I / F) 306, an input device 307, an output interface (I / F) 308, output device 309, communication interface (I / F) 310, SAN (Storage Area Network) interface (I / F) 311, and bus 312.
  • Each piece of hardware is connected via a bus 312.
  • the RAM 302 is a readable / writable memory device, and for example, a semiconductor memory such as SRAM (Static RAM) or DRAM (Dynamic RAM), or a flash memory even if not a RAM is used.
  • the ROM 303 includes a PROM (Programmable ROM).
  • the drive device 304 is a device that performs at least one of reading and writing of information recorded in the storage medium 305.
  • the storage medium 305 stores information written by the drive device 304.
  • the storage medium 305 is a storage medium such as a hard disk, a flash memory such as an SSD (Solid State Drive), a CD (Compact Disc), a DVD (Digital Versatile Disc), or a Blu-ray disc.
  • the computer 1 is provided with a drive device 304 and a storage medium 305 for each of a plurality of types of storage media.
  • the input interface 306 is connected to the input device 307 and is a circuit that transmits an input signal received from the input device 307 to the processor 301.
  • the output interface 308 is a circuit that is connected to the output device 309 and causes the output device 309 to execute an output in accordance with an instruction from the processor 301.
  • the communication interface 310 is a circuit that controls communication via the network 3.
  • the communication interface 310 is, for example, a network interface card (NIC).
  • the SAN interface 311 is a circuit that controls communication with a storage device connected to the computer 1 via a storage area network.
  • the SAN interface 311 is, for example, a host bus adapter (HBA).
  • the input device 307 is a device that transmits an input signal according to an operation.
  • the input signal is, for example, a key device such as a keyboard or a button attached to the main body of the computer 1, or a pointing device such as a mouse or a touch panel.
  • the output device 309 is a device that outputs information according to the control of the computer 1.
  • the output device 309 is, for example, an image output device (display device) such as a display, or an audio output device such as a speaker.
  • an input / output device such as a touch screen is used as the input device 307 and the output device 309.
  • the input device 307 and the output device 309 may be integrated with the computer 1 or may be an apparatus that is not included in the computer 1 and is connected to the computer 1 from the outside, for example.
  • the processor 301 reads a program stored in the ROM 303 or the storage medium 305 to the RAM 302 and performs the processing of the control units 110 and 210 according to the read program procedure. At that time, the RAM 302 is used as a work area of the processor 301.
  • the functions of the storage units 120 and 220 are such that the ROM 303 and the storage medium 305 are program files (application program AP24, middleware MW23 and OS22 described later) and data files (for example, encoding dictionaries 121 and 221, two-dimensional hashed index 122, 222, the first three-dimensional hashed indexes 123, 223, etc.), and the RAM 302 is used as a work area of the processor 301.
  • a program read by the processor 301 will be described with reference to FIG.
  • FIG. 21 is a diagram illustrating a configuration example of a program operating on a computer.
  • the processor 301 operates according to the procedure according to the OS 22 to control and manage the hardware group HW21, whereby the processing according to the application program AP24 and the middleware MW23 is executed in the hardware group HW21. Further, in the computer 1, the middleware MW 23 or the application program AP 24 is read into the RAM 302 and executed by the processor 301.
  • the processor 301 When the form generation function is called, the processor 301 performs processing based on at least a part of the middleware MW23 or the application program AP24 (by controlling the hardware HW group 21 based on the OS 22) ) The function of the control unit 110 is realized.
  • the processor 301 When the search function is called, the processor 301 performs processing based on at least a part of the middleware MW23 or the application program AP24 (by controlling the hardware HW group 21 based on the OS 22).
  • the function of the control unit 210 is realized.
  • the encoding function and the search function may be included in the application program AP24 itself, or may be a part of the middleware MW23 that is executed by being called according to the application program AP24.
  • FIG. 22 is a diagram illustrating a configuration example of an apparatus in the system of the embodiment.
  • the system in FIG. 22 includes a computer 1 a, a computer 1 b, a base station 2, and a network 3.
  • the computer 1a is connected to the network 3 connected to the computer 1b by at least one of wireless and wired.
  • the form output device 100 and the search device 200 may be included in either the computer 1a or the computer 1b shown in FIG.
  • the computer 1b may include the function of the form output device 100
  • the computer 1a may include the function of the search device 200
  • the computer 1a may include the function of the form output device 100
  • the computer 1b may include the function of the search device 200.
  • both the computer 1a and the computer 1b may have the function of the form output device 100 and the function of the search device 200.
  • Form output device 110 Control unit 111 Form output format data generation unit 112 Encoding processing unit 112a Encoding unit 112b Index generation unit 113 Embedding unit 114 Output unit 120 Storage unit 121 Encoding dictionary 122 Two-dimensional hashed index 123 First The second three-dimensional hashed index 124 The second three-dimensional hashed index 200 The search device 211 The search target receiving unit 212 The first restoration unit 213 The second restoration unit 214 The search processing unit 215 The search result output unit 220 The storage unit 221 Encoding Dictionary 222 Two-dimensional hashed index 223 First three-dimensional hashed index 224 Second three-dimensional hashed index 225 First restored bitmap 226 Second restored bitmap 227 Third restored bitmap 228 Refined bitmap

Abstract

A program for generation of indexed data causes a computer to execute a process of generating form output format data, from form data which includes a form which includes a plurality of columns. Said program for generation of indexed data causes said computer to execute a process of generating index information with respect to words, characters, or numerical values, said index information including position information which is capable of identifying respective attributes of the plurality columns and position relations in the form data of the data which is included in the form output format data and corresponds to each of the plurality of columns. Said program for generation of indexed data causes said computer to execute a process of outputting an output file which includes the index information and the form output format data.

Description

インデックス付きデータ生成プログラム、インデックス付きデータ生成方法、インデックス付きデータ生成システム、検索プログラム、検索方法、および検索システムIndexed data generation program, indexed data generation method, indexed data generation system, search program, search method, and search system
 本発明は、インデックス付きデータ生成プログラム、インデックス付きデータ生成方法、インデックス付きデータ生成システム、検索プログラム、検索方法、および検索システムに関する。 The present invention relates to an indexed data generation program, an indexed data generation method, an indexed data generation system, a search program, a search method, and a search system.
 従来、帳票を印刷する際には、目的の出力形式で出力されることを保証するために、例えばPDF(Portable Document Format)の形式が用いられる。印刷のために作成されたPDFファイルは、単に印刷や保管の目的だけでなく、検索などに利用されることがある。しかしながら、印刷のために作成されたPDFファイルは、ファイルサイズを小さくすることが求められるため、高度な検索などに利用することができない。高度な検索を行うために、例えば、タグを拡張することにより、PDFファイルに、文字列などの位置情報や属性情報などのメタデータを埋め込むことが知られている。また、高度な検索を行うために、例えば、帳票の項目とページ数とを特定のキーで関連付けたインデックスを生成することが知られている。 Conventionally, when printing a form, for example, a PDF (Portable Document Format) format is used in order to ensure that it is output in a target output format. A PDF file created for printing may be used not only for printing and storage purposes but also for searching and the like. However, since a PDF file created for printing is required to have a small file size, it cannot be used for advanced search. In order to perform an advanced search, for example, it is known to embed metadata such as position information such as a character string and attribute information in a PDF file by extending a tag. In order to perform an advanced search, for example, it is known to generate an index that associates a form item with the number of pages with a specific key.
特開2013-045208号公報JP 2013-045208 A 特開2001-056836号公報JP 2001-056836 A
 しかしながら、例えば、タグを拡張する場合には、ファイルサイズが大きくなり、かつインデックスを有さないので、速やかに検索することができない。 However, for example, when the tag is expanded, the file size becomes large and the index is not included, so that the search cannot be performed quickly.
 また、例えば、従来の技術を用いて、単語や数値単位に、単語や数値とページの情報を関連付けたインデックスを作成した場合であっても、インデックスは、ページの情報しか有していないため、単語や数値の項目に対応した検索ができない。そのため、インデックスを参照した場合であっても、検索により検索候補を絞り込んだ後に、検索候補に対して個別に検索対象の項目に該当するか否かを確認する必要がある。 In addition, for example, even when an index that associates words and numerical values with page information is created in units of words and numerical values using conventional techniques, the index has only page information. Can't search for words or numbers. For this reason, even if the index is referred to, it is necessary to confirm whether or not the search candidates individually correspond to the search target items after narrowing down the search candidates by the search.
 例えば、帳票で数値の検索を行う場合、「100」という数値を検索しても、「単価」が「100」、「数量」が「100」、「金額」が「100」である検索候補が表示されるため、目的とする項目に該当するか否かの確認が必要となる。また、単語の検索を行う場合も同様に、「鎌倉」を検索しても、「支店名」が「鎌倉」、「住所」が「鎌倉」、「氏名」が「鎌倉」である検索候補が表示される。 For example, when searching for a numerical value in a form, even if a numerical value of “100” is searched, a search candidate whose “unit price” is “100”, “quantity” is “100”, and “amount” is “100”. Since it is displayed, it is necessary to confirm whether it corresponds to the target item. Similarly, when searching for words, even if you search for “Kamakura”, search candidates with “branch name” as “Kamakura”, “address” as “Kamakura”, and “name” as “Kamakura” Is displayed.
 そのため、PDFファイルの検索候補とされたページのデータをそれぞれ参照して、個別に検索対象の項目に該当するか否かを確認する必要がある。 Therefore, it is necessary to refer to the data of the pages that are candidates for the search of the PDF file and individually check whether or not the items correspond to the search target items.
 1つの側面では、検索対象の項目に該当するか否かを速やかに判別することを目的とする。 In one aspect, the purpose is to quickly determine whether or not the item is a search target item.
 第1の案では、インデックス付きデータ生成プログラムは、コンピュータに、複数のカラムを有する帳票を含む帳票データから帳票出力形式データを生成する処理を実行させる。インデックス付きデータ生成プログラムは、コンピュータに、単語、文字、または数値に対するインデックス情報であって、複数のカラムそれぞれの属性と、帳票出力形式データに含まれる複数のカラムそれぞれに対応したデータ相互の帳票データにおける位置関係とを特定可能な位置情報を含むインデックス情報を生成する処理を実行させる。インデックス付きデータ生成プログラムは、コンピュータに、インデックス情報、および帳票出力形式データを含む出力ファイルを出力する処理を実行させる。 In the first proposal, the indexed data generation program causes a computer to execute processing for generating form output format data from form data including a form having a plurality of columns. The indexed data generation program stores index information for words, characters, or numerical values in a computer, and includes data for each attribute corresponding to each attribute of the plurality of columns and each of the plurality of columns included in the form output format data. A process of generating index information including position information that can identify the positional relationship in is executed. The indexed data generation program causes a computer to execute a process of outputting an output file including index information and form output format data.
 1つの態様によれば、検索対象の項目に該当するか否かを速やかに判別することができる。 According to one aspect, it is possible to quickly determine whether or not the item corresponds to a search target item.
図1は、実施例1に係る帳票ファイルの生成処理の流れの一例を示す図である。FIG. 1 is a diagram illustrating an example of the flow of a form file generation process according to the first embodiment. 図2は、実施例1のビットマップ型インデックスの一例を示す図である。FIG. 2 is a diagram illustrating an example of the bitmap index according to the first embodiment. 図3は、実施例1に係るハッシュ化インデックス生成処理の一例を示す図である。FIG. 3 is a diagram illustrating an example of the hashed index generation process according to the first embodiment. 図4は、符号化ファイルの構成例を示す図である。FIG. 4 is a diagram illustrating a configuration example of an encoded file. 図5は、検索対象を入力した画像の一例を示す図である。FIG. 5 is a diagram illustrating an example of an image in which a search target is input. 図6は、実施例1に係る検索処理の一例を示す図である。FIG. 6 is a diagram illustrating an example of a search process according to the first embodiment. 図7は、実施例1に係る文字列判別処理の一例を示す図である。FIG. 7 is a diagram illustrating an example of the character string determination process according to the first embodiment. 図8は、実施例1に係る検索条件判別処理の一例を示す図である。FIG. 8 is a diagram illustrating an example of search condition determination processing according to the first embodiment. 図9は、実施例1に係るハッシュ化ビットマップの復元処理の一例を示す図である。FIG. 9 is a diagram illustrating an example of the hashed bitmap restoration process according to the first embodiment. 図10は、実施例1に係る帳票出力装置の構成を示す機能ブロック図である。FIG. 10 is a functional block diagram illustrating the configuration of the form output device according to the first embodiment. 図11は、実施例1に係る帳票ファイル生成処理のフローチャートの一例を示す図である。FIG. 11 is a diagram illustrating an example of a flowchart of the form file generation process according to the first embodiment. 図12は、実施例1に係る検索装置の構成を示す機能ブロック図である。FIG. 12 is a functional block diagram illustrating the configuration of the search device according to the first embodiment. 図13は、実施例1に係る検索処理のフローチャートの一例を示す図である。FIG. 13 is a diagram illustrating an example of a flowchart of search processing according to the first embodiment. 図14は、実施例2に係る帳票出力形式データと、ビットマップ型インデックスとの一例を示す図である。FIG. 14 is a diagram illustrating an example of form output format data and a bitmap index according to the second embodiment. 図15は、検索対象を入力した画像の一例を示す図である。FIG. 15 is a diagram illustrating an example of an image in which a search target is input. 図16は、実施例2に係る検索処理の一例を示す図である。FIG. 16 is a diagram illustrating an example of search processing according to the second embodiment. 図17は、実施例3に係る帳票出力形式データと、ビットマップ型インデックスとの一例を示す図である。FIG. 17 is a diagram illustrating an example of form output format data and a bitmap index according to the third embodiment. 図18は、検索対象を入力した画像の一例を示す図である。FIG. 18 is a diagram illustrating an example of an image in which a search target is input. 図19は、実施例3に係る検索処理の一例を示す図である。FIG. 19 is a diagram illustrating an example of search processing according to the third embodiment. 図20は、コンピュータのハードウェア構成例を示す図である。FIG. 20 is a diagram illustrating a hardware configuration example of a computer. 図21は、コンピュータで動作するプログラムの構成例を示す図である。FIG. 21 is a diagram illustrating a configuration example of a program operating on a computer. 図22は、実施例のシステムにおける装置の構成例を示す図である。FIG. 22 is a diagram illustrating a configuration example of an apparatus in the system according to the embodiment.
 以下に、本願の開示するインデックス付きデータ生成プログラム、インデックス付きデータ生成方法、インデックス付きデータ生成システム、検索プログラム、検索方法、および検索システムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの権利範囲が限定されるものではない。各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。 Hereinafter, embodiments of an indexed data generation program, an indexed data generation method, an indexed data generation system, a search program, a search method, and a search system disclosed in the present application will be described in detail with reference to the drawings. This scope of rights is not limited by this embodiment. Each embodiment can be appropriately combined within a range in which processing contents do not contradict each other.
[実施例1に係る帳票ファイル生成の一例]
 図1は、実施例1に係る帳票ファイルの生成処理の流れの一例を示す図である。帳票出力装置は、入力された帳票データから帳票出力形式データを生成する。帳票出力装置は、生成した帳票出力形式データに基づいて、帳票の複数の項目(カラム)それぞれの属性(以下、「項目」と称する場合がある。)と、帳票出力形式データに含まれる複数の項目それぞれに対応したデータ相互の帳票データにおける位置関係とを特定可能な位置情報を含むビットマップ型インデックスを生成する。そして、帳票出力装置は、帳票出力形式データと、ビットマップ型インデックスとを含む帳票ファイルを生成する。帳票データは、複数の項目を有する帳票を含む。
[Example of form file generation according to Embodiment 1]
FIG. 1 is a diagram illustrating an example of the flow of a form file generation process according to the first embodiment. The form output device generates form output format data from the input form data. The form output device, based on the generated form output format data, attributes (hereinafter may be referred to as “items”) of a plurality of items (columns) of the form, and a plurality of items included in the form output format data. A bitmap index including position information capable of specifying the positional relationship in the form data between the data corresponding to each item is generated. Then, the form output device generates a form file including form output format data and a bitmap index. The form data includes a form having a plurality of items.
 帳票ファイルの生成処理の一例を、以下に説明する。例えば、帳票ファイル生成処理を実行する帳票出力装置は、帳票データを含むファイル3を読み出す。なお、ファイル3の「3」は、ファイルIDが「3」であることを示す。ファイル3は、帳票の項目として、「日付」、「商品コード」、「商品名」などを有している。例えば、「日付」の項目には「2015/7/15」が含まれる。また、例えば、「商品コード」の項目には「12345」が含まれる。また、例えば、「商品名」の項目には「a1a2a3」が含まれる。ここでは、「a1a2a3」を、日本語の漢字で表示される「冷蔵庫」として説明する。なお、帳票の項目は、これらに限定されるものではない。 An example of a form file generation process is described below. For example, a form output device that executes a form file generation process reads a file 3 including form data. Note that “3” of the file 3 indicates that the file ID is “3”. The file 3 has “date”, “product code”, “product name”, and the like as items of the form. For example, the item “date” includes “2015/7/15”. For example, the item “product code” includes “12345”. For example, “product name” includes “a1a2a3”. Here, “a1a2a3” will be described as “refrigerator” displayed in Japanese kanji. The form items are not limited to these.
 帳票出力装置は、ファイル3に含まれる帳票データから帳票出力形式データを生成する。帳票出力形式データは、CSV(Comma-Separated Values)形式のデータである。帳票出力形式データには、カンマにより区切られた複数の項目のデータからなるレコードが含まれる。なお、図1では、一例として1つのレコードを有した例を示しているが、帳票出力形式データには、複数のレコードが含まれる。 The form output device generates form output format data from the form data included in the file 3. The form output format data is CSV (Comma-Separated Values) format data. The form output format data includes a record composed of a plurality of items of data separated by commas. Although FIG. 1 shows an example having one record as an example, the form output format data includes a plurality of records.
 帳票出力装置は、ファイル3に対し、単語、文字などで構成される文字列や、数値で構成される数値列を含む帳票出力形式データを符号化し、符号化データと、符号化辞書とを生成する。なお、以降、文字列、および数値列を、単に「文字列」として説明する。帳票出力装置は、例えば、「日付」の項目の「2015/7/15」を「A000h」に符号化する。帳票出力装置は、例えば、「商品コード」の項目の「12345」を「B010h」に符号化する。帳票出力装置は、例えば、「商品名」の項目の「冷蔵庫」を「C021h」に符号化する。また、帳票出力装置は、例えば、帳票出力形式データの文字列がアルファベットである場合、単語ごとに符号化する。例えば、「Liquid Crystal Television」は、「Liquid」、「Crystal」、および「Television」に分けられ、それぞれ符号化される。帳票出力形式データの各データは、項目ごとに、符号化される。帳票出力装置は、帳票出力形式データを符号化し、符号化データを生成する。 The form output device encodes the file 3 with the form output form data including the character string composed of words and characters and the numerical string composed of numerical values, and generates the encoded data and the encoding dictionary. To do. Hereinafter, the character string and the numerical value string will be simply referred to as “character string”. For example, the form output device encodes “2015/7/15” of the item “date” into “A000h”. For example, the form output device encodes “12345” in the item “product code” into “B010h”. For example, the form output device encodes “refrigerator” in the item “product name” into “C021h”. Further, for example, when the character string of the form output format data is alphabet, the form output device encodes for each word. For example, “Liquid Crystal Television” is divided into “Liquid”, “Crystal”, and “Television”, and each is encoded. Each data of the form output format data is encoded for each item. The form output device encodes the form output format data and generates encoded data.
 また、帳票出力装置は、帳票出力形式データの文字列が日本語である場合、1文字ごとに符号化する。例えば、「冷蔵庫」は、「冷」、「蔵」、「庫」に分けられ、それぞれ符号化される。帳票出力装置は、例えば、「冷」を「D000h」に符号化する。帳票出力装置は、例えば、「蔵」を「D001h」に符号化する。帳票出力装置は、例えば、「庫」を「D002h」に符号化する。なお、帳票出力形式データの文字列が日本語である場合、符号化データに用いられる符号は、文字列ごとに、符号化された符号である。 Also, the form output device encodes each character when the character string of the form output format data is Japanese. For example, “refrigerator” is divided into “cold”, “brewery”, and “warehouse”, and each is encoded. For example, the form output device encodes “cold” into “D000h”. For example, the form output device encodes “Kura” into “D001h”. For example, the form output device encodes “warehouse” into “D002h”. When the character string of the form output format data is Japanese, the code used for the encoded data is an encoded code for each character string.
 以降、帳票出力形式データの各データなどが符号化された符号を「単語ID」という。 Hereinafter, a code obtained by encoding each data of the form output format data is referred to as “word ID”.
 符号化辞書は、静的辞書と、動的辞書とを有する。静的辞書とは、一般的な英語辞典、国語辞典や教科書などを基にして、文書中に出現する単語の出現頻度を特定し、出現頻度のより高い単語に対して、より短い符号(単語ID)を割り当てた辞書のことをいう。静的辞書には、それぞれの単語に対応する符号である静的コードがあらかじめ登録されている。これに対して、動的辞書とは、静的辞書に登録されていない単語と、動的に付された動的コード(符号)とを対応付けた辞書である。静的辞書に登録されていない単語には、一例として、出現頻度の低い単語(低頻度単語)、文字、未知語、数値、時刻、タグなどがある。ここでいう未知語とは、静的辞書に登録されていない単語であり、符号化する文書の中で繰り返し出現する特長がある単語のことをいう。動的辞書には、静的辞書に登録されていない単語の出現順に、動的コードに対応付けられた単語が登録される。なお、符号化データを生成するための符号化辞書と、ビットマップ型インデックスを生成するための符号化辞書とを異なる辞書としても良い。 The coding dictionary has a static dictionary and a dynamic dictionary. Static dictionaries are based on general English dictionaries, Japanese dictionaries, textbooks, etc., and identify the frequency of words that appear in a document. ID). In the static dictionary, a static code that is a code corresponding to each word is registered in advance. On the other hand, the dynamic dictionary is a dictionary in which words that are not registered in the static dictionary are associated with dynamically assigned dynamic codes (codes). Examples of words that are not registered in the static dictionary include words with low appearance frequency (low frequency words), characters, unknown words, numerical values, time, and tags. The unknown word here is a word that is not registered in the static dictionary and has a feature that appears repeatedly in the document to be encoded. In the dynamic dictionary, words associated with the dynamic code are registered in the order of appearance of words not registered in the static dictionary. Note that the encoding dictionary for generating encoded data and the encoding dictionary for generating a bitmap index may be different dictionaries.
 帳票出力装置は、ファイルIDに対する単語IDについての情報を生成する。また、帳票出力装置は、ファイルIDに対し、単語IDと、単語IDが示す文字列の位置とについての情報を生成する。また、帳票出力装置は、ファイルIDに対し、帳票の項目と、帳票の項目の位置とについての情報を生成する。帳票出力装置は、生成された情報に基づき、ファイル3に対する、単語IDが示す文字列の存否を2次元ビットマップ型インデックスBI1に設定する。また、帳票出力装置は、生成された情報に基づき、ファイル3に対する、単語ID、および単語IDが示す文字列の位置を第1の3次元ビットマップ型インデックスBI2に設定する。また、帳票出力装置は、生成された情報に基づき、ファイル3に対する、帳票の項目、および帳票の項目が示す位置を第2の3次元ビットマップ型インデックスBI3に設定する。 The form output device generates information about the word ID for the file ID. Further, the form output device generates information on the word ID and the position of the character string indicated by the word ID for the file ID. Also, the form output device generates information on the form item and the position of the form item for the file ID. The form output device sets the presence or absence of the character string indicated by the word ID for the file 3 in the two-dimensional bitmap index BI1 based on the generated information. The form output device also sets the word ID and the position of the character string indicated by the word ID for the file 3 in the first three-dimensional bitmap index BI2 based on the generated information. Further, the form output device sets the item of the form and the position indicated by the form item with respect to the file 3 in the second three-dimensional bitmap index BI3 based on the generated information.
 帳票出力形式データの文字列が日本語である場合、2次元ビットマップ型インデックスBI1、第1の3次元ビットマップ型インデックスBI2などでは、1文字ごとに符号化した単語IDが用いられる。例えば、文字列が日本語の「冷蔵庫」である場合、「冷」、「蔵」、「庫」の対応する3つの単語IDが用いられる。また、例えば、文字列がアルファベットの「Liquid Crystal Television」である場合、「Liquid」、「Crystal」、「Television」に対応する3つの単語IDが用いられる。 When the character string of the form output format data is Japanese, the word ID encoded for each character is used in the two-dimensional bitmap index BI1, the first three-dimensional bitmap index BI2, and the like. For example, when the character string is “refrigerator” in Japanese, three word IDs corresponding to “cold”, “brewery”, and “warehouse” are used. For example, when the character string is the alphabet “Liquid Crystal Television”, three word IDs corresponding to “Liquid”, “Crystal”, and “Television” are used.
 ここでいう2次元ビットマップ型インデックスBI1とは、全文検索のためのインデックスであり、文字列を指定するポインタと、各ファイルにおける文字列の存否を示すビットとを連結したビット列である。すなわち、2次元ビットマップ型インデックスBI1とは、ファイルに含まれる文字列について、ファイルごとの存否をインデックス化したビットマップのことをいう。検索処理時には、このビットマップを、検索対象である文字列を含むか否かを示すインデックスとして用いることができる。文字列を指定するポインタとしては、例えば、単語IDが採用される。なお、文字列を指定するポインタは、例えば、文字列そのものを用いても良い。すなわち、2次元ビットマップ型インデックスBI1は、文字列を指定するポインタで示される文字列ごとのビットマップを纏めたものである。図1に示すように、2次元ビットマップ型インデックスBI1のX軸はファイルIDを表し、Y軸は単語IDを表す。つまり、2次元ビットマップ型インデックスBI1は、単語IDが示す文字列の、複数のファイルIDが示すファイルごとの存否を表す。 Here, the two-dimensional bitmap index BI1 is an index for full-text search, and is a bit string obtained by concatenating a pointer specifying a character string and a bit indicating the presence or absence of the character string in each file. That is, the two-dimensional bitmap index BI1 refers to a bitmap obtained by indexing the presence / absence of each file with respect to a character string included in the file. During the search process, this bitmap can be used as an index indicating whether or not a character string to be searched is included. For example, a word ID is adopted as a pointer for designating a character string. For example, the character string itself may be used as the pointer for designating the character string. That is, the two-dimensional bitmap index BI1 is a collection of bitmaps for each character string indicated by a pointer that designates a character string. As shown in FIG. 1, the X axis of the two-dimensional bitmap index BI1 represents a file ID, and the Y axis represents a word ID. That is, the two-dimensional bitmap index BI1 indicates the presence / absence of the character string indicated by the word ID for each file indicated by the plurality of file IDs.
 ここでいう第1の3次元ビットマップ型インデックスBI2は、2次元ビットマップ型インデックスBI1に対して、各ファイル内での、文字列の位置を追加したビットマップ型インデックスである。すなわち、第1の3次元ビットマップ型インデックスBI2とは、ファイルに含まれる、文字列について、ファイルごとに存する位置をインデックス化したビットマップのことをいう。図1に示すように、第1の3次元ビットマップ型インデックスBI2のX軸はOffset(位置)を表し、Y軸は単語IDを表し、Z軸はファイルIDを表す。第1の3次元ビットマップ型インデックスBI2は、単語IDが示す文字列の、複数のファイルIDが示すファイルごとの位置を表す。すなわち、第1の3次元ビットマップ型インデックスBI2は、文字列相互の帳票データにおける位置関係を特定可能な位置情報を含むインデックス情報である。 Here, the first three-dimensional bitmap index BI2 is a bitmap index in which the position of the character string in each file is added to the two-dimensional bitmap index BI1. In other words, the first three-dimensional bitmap index BI2 refers to a bitmap obtained by indexing positions existing for each file with respect to a character string included in the file. As shown in FIG. 1, the X-axis of the first three-dimensional bitmap index BI2 represents Offset (position), the Y-axis represents a word ID, and the Z-axis represents a file ID. The first three-dimensional bitmap index BI2 represents the position for each file indicated by the plurality of file IDs of the character string indicated by the word ID. That is, the first three-dimensional bitmap index BI2 is index information including position information that can specify the positional relationship in the form data between character strings.
 また、第2の3次元ビットマップ型インデックスBI3は、各ファイルにおける、帳票の項目の位置をインデックス化したビットマップのことをいう。図1に示すように、第2の3次元ビットマップ型インデックスBI3のX軸はOffset(位置)を表し、Y軸は帳票の項目を表し、Z軸はファイルIDを表す。すなわち、第2の3次元ビットマップ型インデックスBI3は、帳票の項目の帳票データにおける位置関係を特定可能な位置情報を含むインデックス情報である。 Also, the second three-dimensional bitmap index BI3 is a bitmap in which the position of the form item in each file is indexed. As shown in FIG. 1, the X axis of the second three-dimensional bitmap index BI3 represents Offset (position), the Y axis represents a form item, and the Z axis represents a file ID. That is, the second three-dimensional bitmap index BI3 is index information including position information that can specify the positional relationship of the form items in the form data.
 ここで、帳票出力装置がファイル3に対して、各ビットマップ型インデックスを生成する場合の処理について説明する。 Here, processing when the form output device generates each bitmap type index for the file 3 will be described.
 帳票出力装置は、ファイル3の帳票の項目に含まれる文字列を単語IDに符号化する。なお、文字列が日本語である場合、帳票出力装置は、1文字ごとに、単語IDに符号化する。例えば、「商品名」の「冷蔵庫」は、日本語なので、1文字ごとに、単語IDに符号化される。ここでは、帳票の項目「商品名」の「冷」について各ビットマップ型インデックスを生成する場合の処理について説明する。「商品名」の「冷」の単語IDは、「D000h」である。ファイル3における「冷」の位置は、「2」であるとする。 The form output device encodes a character string included in the form item of the file 3 into a word ID. When the character string is in Japanese, the form output device encodes each character into a word ID. For example, since “refrigerator” of “product name” is Japanese, it is encoded into a word ID for each character. Here, a process when each bitmap type index is generated for “cold” of the item “product name” of the form will be described. The word ID of “Cold” in “Product Name” is “D000h”. It is assumed that the position of “cold” in the file 3 is “2”.
 帳票出力装置は、生成された情報に基づいて、ファイル3に対する、単語ID「D000h」が示す文字の存否を2次元ビットマップ型インデックスBI1に設定する。図1に示す2次元ビットマップ型インデックスBI1には、ファイルIDが「3」のファイルに、「D000h」が存在することを意味するビット値「1」が、ファイルID「3」に対応するビットに設定される。なお、例えば、ファイルに「D000h」が存在しない場合には、そのファイルIDに対応するビットにビット値「0」が設定される。 The form output device sets the presence or absence of the character indicated by the word ID “D000h” for the file 3 in the two-dimensional bitmap index BI1 based on the generated information. In the two-dimensional bitmap index BI1 shown in FIG. 1, the bit value “1” indicating that “D000h” exists in the file with the file ID “3” is a bit corresponding to the file ID “3”. Set to For example, when “D000h” does not exist in the file, the bit value “0” is set in the bit corresponding to the file ID.
 帳票出力装置は、生成された情報に基づいて、ファイル3に対し、単語ID「D000h」が示す文字の位置「2」を第1の3次元ビットマップ型インデックスBI2に設定する。図1に示す第1の3次元ビットマップ型インデックスBI2には、ファイルIDが「3」のファイルの位置「2」に、「D000h」が存在することを意味するビット値「1」が、ファイルID「3」の位置「2」に対応するビットに設定される。なお、例えば、ファイルの所定の位置に「D000h」が存在しない場合には、そのファイルIDの所定の位置に対応するビットにビット値「0」が設定される。 The form output device sets the position “2” of the character indicated by the word ID “D000h” in the first three-dimensional bitmap index BI2 for the file 3 based on the generated information. In the first three-dimensional bitmap index BI2 shown in FIG. 1, the bit value “1”, which means that “D000h” exists at the position “2” of the file with the file ID “3”, The bit corresponding to the position “2” of the ID “3” is set. For example, when “D000h” does not exist at a predetermined position of the file, a bit value “0” is set to a bit corresponding to the predetermined position of the file ID.
 また、帳票出力装置は、生成された情報に基づいて、ファイル3に対し、帳票の項目「商品名」の位置を第2の3次元ビットマップ型インデックスBI3に設定する。図1に示す第2の3次元ビットマップ型インデックスBI3には、帳票の項目「商品名」が、ファイル3の位置「2」から始まっていることを意味するビット値「1」が、ファイルID「3」の位置「2」に対応するビットに設定される。第2の3次元ビットマップ型インデックスBI3では、帳票の項目が始まる位置に対応するビットにのみビット値「1」が設定される。例えば、ファイル3において帳票の項目「商品名」は、位置「2」から始まり、位置「4」で終わる。そのため、帳票の項目「商品名」の次の項目について、第2の3次元ビットマップ型インデックスBI3では、位置「5」に対応するビットにビット値「1」が設定される。 Also, the form output device sets the position of the item “product name” of the form in the second three-dimensional bitmap index BI3 with respect to the file 3 based on the generated information. In the second three-dimensional bitmap index BI3 shown in FIG. 1, a bit value “1” indicating that the item “product name” of the form starts from the position “2” of the file 3 has a file ID. It is set to the bit corresponding to position “2” of “3”. In the second three-dimensional bitmap index BI3, the bit value “1” is set only for the bit corresponding to the position where the item of the form starts. For example, in the file 3, the item “product name” of the form starts from the position “2” and ends at the position “4”. Therefore, for the item next to the item “product name” in the form, the bit value “1” is set to the bit corresponding to the position “5” in the second three-dimensional bitmap index BI3.
 このようにして、帳票出力装置は、ファイル3に対して、帳票の複数の項目、および帳票の各データを符号化した単語ID相互の帳票データにおける位置関係を特定可能な位置情報を含む各ビットマップ型インデックスBI1~BI3を生成する。帳票出力装置は、各ビットマップ型インデックスBI1~BI3から各ハッシュ化インデックスを生成する。そして、帳票出力装置は、各ハッシュ化インデックスのインデックス情報を有する符号化ファイル、および帳票出力形式データを含む帳票ファイルを、出力ファイルとして出力する。ハッシュ化インデックスについては後述する。 In this way, the form output device, with respect to the file 3, includes a plurality of items of the form and each bit including position information that can specify the positional relationship in the form data between the word IDs obtained by encoding the form data. Map type indexes BI1 to BI3 are generated. The form output device generates each hashed index from each bitmap type index BI1 to BI3. Then, the form output device outputs an encoded file having the index information of each hashed index and a form file including the form output format data as an output file. The hashed index will be described later.
[ビットマップ型インデックスの一例]
 次に、ビットマップ型インデックスについて、図2を用いて説明する。図2は、実施例1のビットマップ型インデックスの一例を示す図である。ここでは、ファイル3における、帳票の項目についてのビットマップ型インデックスを一例として説明する。また、ファイル3における、帳票の項目「日付」の「2015/7/15」、および帳票の項目「冷蔵庫」に対応する単語IDについてのビットマップ型インデックスを一例として説明する。
[Example of bitmap index]
Next, the bitmap type index will be described with reference to FIG. FIG. 2 is a diagram illustrating an example of the bitmap index according to the first embodiment. Here, a bitmap type index for a form item in the file 3 will be described as an example. Further, a bitmap type index for the word ID corresponding to “2015/7/15” of the form item “date” and the item “refrigerator” of the form in the file 3 will be described as an example.
 帳票の項目についてのビットマップ型インデックスでは、ファイル3の先頭のレコードから、項目順に、位置、および位置に対応するビットが割り当てられる。そして、項目の位置に対応するビットのビット値が「1」に設定される。或るレコードの最後の帳票の項目に位置、および位置に対応するビットが割り当てられると、次のレコードの最初の項目に次の位置、および位置に対応する次のビットが割り当てられる。 In the bitmap type index for the form items, the position and the bit corresponding to the position are allocated in the order of the items from the top record of the file 3. Then, the bit value of the bit corresponding to the item position is set to “1”. When the position and the bit corresponding to the position are assigned to the item of the last form of a certain record, the next position and the next bit corresponding to the position are assigned to the first item of the next record.
 帳票の項目「日付」のビットマップは、「・・・1000001」となっている。これは、ファイル3の位置「0」である0ビット目に、先頭のレコードの帳票の項目「日付」に関するデータが格納されていることを表す。また、ファイル3の位置「6」である6ビット目に、次のレコードの帳票の項目「日付」に関するデータが格納されていることを表す。また、ここでは、位置「12」、「21」、「29」、および「37」に対応する各ビットに、帳票の項目「日付」に関するデータが格納されている。 The bitmap of the item “date” of the form is “... 1000001”. This indicates that data relating to the item “date” of the form of the first record is stored in the 0th bit at the position “0” of the file 3. In addition, the sixth bit at the position “6” in the file 3 indicates that data relating to the item “date” of the form of the next record is stored. Here, data relating to the item “date” of the form is stored in each bit corresponding to the positions “12”, “21”, “29”, and “37”.
 また、帳票の項目「商品コード」のビットマップは、「・・・10000010」となっている。これは、ファイル3の位置「1」である1ビット目に、先頭のレコードの帳票の項目の「商品コード」に関するデータが格納されていることを表す。また、ファイル3の位置「7」である7ビット目に、次のレコードの帳票の項目「商品コード」に関するデータが格納されていることを表す。また、ここでは、位置「13」、「22」、「30」、および「38」に対応する各ビットに、帳票の項目「商品コード」に関するデータが格納されている。 Also, the bit map of the item “product code” in the form is “... 10000010”. This indicates that data relating to “product code” of the form item of the first record is stored in the first bit at the position “1” of the file 3. In addition, the seventh bit at the position “7” of the file 3 indicates that data relating to the item “product code” of the form of the next record is stored. Here, data relating to the item “product code” of the form is stored in each bit corresponding to the positions “13”, “22”, “30”, and “38”.
 また、帳票の項目「商品名」のビットマップは、「・・・100000100」となっており、帳票の項目「単価」のビットマップは、「・・・100000100000」となっている。これは、ファイル3の位置「2」~「4」である2ビット目~4ビット目に項目「商品名」に関するデータが格納されていることを表す。また、ファイル3の位置「8」~「10」である8ビット目~10ビット目に項目「商品名」に関するデータが格納されていることを表す。また、ここでは、位置「14」~「19」、「23」~「27」、「31」~「35」、および「39」~「42」に対応する各ビットに、帳票の項目「商品名」に関するデータが格納されている。 In addition, the bit map of the item “product name” of the form is “... 100,000,100”, and the bit map of the item “unit price” of the form is “... 100,000,000”. This indicates that data relating to the item “product name” is stored in the second bit to the fourth bit at the positions “2” to “4” of the file 3. In addition, it indicates that data relating to the item “product name” is stored in the 8th to 10th bits of the position “8” to “10” of the file 3. In addition, here, in the bits corresponding to the positions “14” to “19”, “23” to “27”, “31” to “35”, and “39” to “42”, the item “product” Stores data related to "name".
 単語IDについてのビットマップ型インデックスでは、ファイル3の先頭のレコードから、単語ID順に、位置、および位置に対応するビットが割り当てられる。そして、単語IDの位置に対応するビットのビット値が「1」に設定される。或るレコードの最後の単語IDに位置、および位置に対応するビットが割り当てられると、次のレコードの最初の単語IDに次の位置、および位置に対応する次のビットが割り当てられる。 In the bitmap type index for the word ID, the position and the bit corresponding to the position are assigned from the top record of the file 3 in the order of the word ID. Then, the bit value of the bit corresponding to the position of the word ID is set to “1”. When the position and the bit corresponding to the position are assigned to the last word ID of a certain record, the next position and the next bit corresponding to the position are assigned to the first word ID of the next record.
 また、単語ID「A000h」(数値「2015/7/15))のビットマップは、「・・・0001」となっている。これは、単語ID「A000h」に対応する数値「2015/7/15」が0ビット目に格納され、他のビットには格納されていないことを表す。また、単語ID「D000h」(文字「冷」)のビットマップは、「・・・0100」となっている。これは、単語ID「D000h」に対応する文字「冷」が2ビット目に格納され、他のビットには格納されていないことを表す。また、単語ID「D001h」(文字「蔵」)のビットマップは、「・・・1000」となっている。これは、単語ID「D001h」に対応する文字「蔵」が3ビット目に格納され、他のビットには格納されていないことを表す。また、単語ID「D002h」(文字「庫」)のビットマップは、「・・・10000」となっている。これは、単語ID「D002h」に対応する文字「蔵」が4ビット目に格納され、他のビットには格納されていないことを表す。 Also, the bitmap of the word ID “A000h” (numerical value “2015/7/15)” is “... 0001”. This indicates that the numerical value “2015/7/15” corresponding to the word ID “A000h” is stored in the 0th bit and not stored in other bits. The bitmap of the word ID “D000h” (character “cold”) is “... 0100”. This indicates that the character “cold” corresponding to the word ID “D000h” is stored in the second bit and not stored in other bits. The bitmap of the word ID “D001h” (character “Kura”) is “... 1000”. This indicates that the character “Kura” corresponding to the word ID “D001h” is stored in the third bit and not stored in other bits. Also, the bitmap of the word ID “D002h” (the character “box”) is “... 10000”. This indicates that the character “kura” corresponding to the word ID “D002h” is stored in the fourth bit and not stored in other bits.
 このように、ビットマップ型インデックスは、例えば、帳票の項目や、帳票データにおける単語IDの位置情報などを格納したビットマップ型転置インデックスである。 As described above, the bitmap type index is, for example, a bitmap type transposed index storing form items, position information of word IDs in form data, and the like.
[実施例1に係るハッシュ化インデックス生成処理の一例]
 次に、ビットマップ側インデックスのビットマップをハッシュ化する処理の一例を、図3を参照して説明する。図3は、実施例1に係るハッシュ化インデックス生成処理の一例を示す図である。図3は、X軸としてファイルID、Y軸として単語IDを表す2次元ビットマップ型インデックスBI1のビットマップをハッシュ化する場合を一例として説明する。
[Example of hashed index generation processing according to Embodiment 1]
Next, an example of processing for hashing the bitmap of the bitmap side index will be described with reference to FIG. FIG. 3 is a diagram illustrating an example of the hashed index generation process according to the first embodiment. FIG. 3 illustrates an example of hashing a bitmap of the two-dimensional bitmap index BI1 that represents a file ID as the X axis and a word ID as the Y axis.
 帳票出力装置は、単語IDに対応するビットマップそれぞれについてハッシュ関数を適用した複数のハッシュ化ビットマップを生成する。ここでは、帳票出力装置は、43ビットレジスタを想定し、一例として29と31のハッシュ値(底)を基に、2次元ビットマップ型インデックスBI1のビットマップをハッシュ化する。具体的には、帳票出力装置は、1つの底のハッシュ化ビットマップについて、単語IDに対応するビットマップの各ビットの位置を底で割った余りの位置に、ビットマップの各ビットの値を設定する。ビットマップの各ビットの位置は、それぞれのファイルIDに対応する。一例として、帳票出力装置は、底29のハッシュ化ビットマップh11について、ビットマップの各ビットの位置を底29で割った余りの位置に、ビットマップの各ビットの値を設定する。ビットマップの35ビット目の位置のビット値「1」は、ハッシュ化ビットマップh11の6ビット目に設定される。ビットマップの42ビット目の位置のビット値「1」は、ハッシュ化ビットマップh11の13ビット目に設定される。帳票出力装置は、底31のハッシュ化ビットマップh12について、ビットマップの各ビットの位置を底31で割った余りの位置に、ビットマップの各ビットの値を設定する。ビットマップの35ビット目の位置のビット値「1」は、ハッシュ化ビットマップh12の4ビット目に設定される。ビットマップの42ビット目の位置のビット値「1」は、ハッシュ化ビットマップh12の11ビット目に設定される。すなわち、帳票出力装置は、ビットマップの0ビット目からの各ビットを順番にハッシュ化ビットマップの0ビット目から設定し、(底-1)ビット目まで設定する。そして、帳票出力装置は、再度折り返してビットマップの0ビット目から既にハッシュ化ビットマップに設定された値とOR演算した値を設定する。この結果、帳票出力装置は、ビットマップについて、ハッシュ化ビットマップh11、h12を生成する。このようにして、帳票出力装置は、単語IDにおける2次元ビットマップ型インデックスBI1のビットマップについて、それぞれハッシュ化ビットマップh11、h12を生成する。帳票出力装置は、生成されたハッシュ化ビットマップh11、h12を纏めた2次元ハッシュ化インデックスHI1を生成する。 The form output device generates a plurality of hashed bitmaps to which a hash function is applied for each bitmap corresponding to the word ID. Here, the form output device assumes a 43-bit register and, as an example, based on the hash values (bottom) of 29 and 31, hash the bitmap of the two-dimensional bitmap index BI1. Specifically, the form output device sets the value of each bit of the bitmap to the remainder of dividing the position of each bit of the bitmap corresponding to the word ID by the bottom for one hashed bitmap. Set. The position of each bit in the bitmap corresponds to each file ID. As an example, the form output device sets the value of each bit of the bitmap in the remainder position obtained by dividing the position of each bit of the bitmap by the base 29 for the hashed bitmap h11 of the base 29. The bit value “1” at the 35th bit position of the bitmap is set to the sixth bit of the hashed bitmap h11. The bit value “1” at the 42nd bit position of the bitmap is set to the 13th bit of the hashed bitmap h11. The form output device sets the value of each bit of the bitmap in the remainder position obtained by dividing the position of each bit of the bitmap by the base 31 for the hashed bitmap h12 of the base 31. The bit value “1” at the 35th bit position of the bitmap is set to the fourth bit of the hashed bitmap h12. The bit value “1” at the 42nd bit position of the bitmap is set to the 11th bit of the hashed bitmap h12. That is, the form output device sets each bit from the 0th bit of the bitmap in order from the 0th bit of the hashed bitmap, and sets up to the (base-1) th bit. Then, the form output device wraps again and sets a value obtained by OR operation with the value already set in the hashed bitmap from the 0th bit of the bitmap. As a result, the form output device generates hashed bitmaps h11 and h12 for the bitmap. In this way, the form output device generates hashed bitmaps h11 and h12 for the bitmap of the two-dimensional bitmap index BI1 in the word ID, respectively. The form output device generates a two-dimensional hashed index HI1 in which the generated hashed bitmaps h11 and h12 are collected.
 帳票出力装置は、第1の3次元ビットマップ型インデックスBI2のビットマップから、2次元ビットマップ型インデックスBI1のビットマップの場合と同様に、ハッシュ関数を適用した複数のハッシュ化ビットマップを生成する。そして、帳票出力装置は、それぞれ生成されたハッシュ化ビットマップを纏めた第1の3次元ハッシュ化インデックスHI2を生成する。また、帳票出力装置は、第2の3次元ビットマップ型インデックスBI3から、同様に、第2の3次元ハッシュ化インデックスHI3を生成する。以降、ハッシュ値(底)は、一例として、29と31であるとして説明する。 The form output device generates a plurality of hashed bitmaps to which a hash function is applied from the bitmap of the first three-dimensional bitmap index BI2 as in the case of the bitmap of the two-dimensional bitmap index BI1. . Then, the form output device generates a first three-dimensional hashed index HI2 in which the generated hashed bitmaps are collected. Similarly, the form output device generates a second three-dimensional hashed index HI3 from the second three-dimensional bitmap index BI3. Hereinafter, description will be made assuming that the hash values (bottom) are 29 and 31, for example.
[符号化ファイルの構成例]
 図4は、符号化ファイルの構成例を示す図である。図4に示すように、符号化ファイルは、ヘッダ部と、符号化データと、トレーラ部とを有する。符号化データは、複数のファイルそれぞれの符号化された単語ID群を記憶する。トレーラ部は、各ファイルのアドレス、動的辞書(共通/個別)の情報、ハッシュ化インデックス(2次元/3次元)などを記憶する。各ファイルのアドレスは、複数のファイルが符号化された各符号化データの格納先のアドレスを示す。各ファイルのアドレスは、一例として、符号化データの先頭からの相対アドレスである。個別の動的辞書の情報は、複数のファイルそれぞれに対する、動的辞書の情報に対応する。共通の動的辞書の情報は、複数のファイル全体に対する、動的辞書の情報に対応する。ヘッダ部には、トレーラ部に格納された各ファイルのアドレスへのポインタ、動的辞書へのポインタやハッシュ化インデックス(2次元/3次元)へのポインタが格納される。帳票出力装置は、複数のファイルをそれぞれ符号化すると、符号化されたそれぞれの結果を示す符号化データを符号化ファイルに格納し、格納した各アドレスを各ファイルのアドレスに格納する。復号化処理では、ヘッダ部の各ファイルのアドレスへのポインタを利用して、トレーラ部の各ファイルのアドレスから復号化対象のファイルのアドレスを参照する。復号化処理は、ヘッダ部の動的辞書へのポインタを利用し、動的辞書を参照する。検索処理では、ヘッダ部の各ハッシュ化インデックスのアドレスへのポインタを利用して、トレーラ部の各ハッシュ化インデックスのアドレスから検索対象のハッシュ化インデックスのアドレスを参照する。
[Configuration example of encoded file]
FIG. 4 is a diagram illustrating a configuration example of an encoded file. As shown in FIG. 4, the encoded file has a header part, encoded data, and a trailer part. The encoded data stores an encoded word ID group for each of a plurality of files. The trailer unit stores the address of each file, dynamic dictionary (common / individual) information, hashed index (2D / 3D), and the like. The address of each file indicates the storage destination address of each encoded data obtained by encoding a plurality of files. As an example, the address of each file is a relative address from the beginning of the encoded data. Individual dynamic dictionary information corresponds to dynamic dictionary information for each of a plurality of files. The common dynamic dictionary information corresponds to the dynamic dictionary information for the entire plurality of files. The header part stores a pointer to the address of each file stored in the trailer part, a pointer to a dynamic dictionary, and a pointer to a hashed index (2D / 3D). When the form output device encodes a plurality of files, the form output device stores the encoded data indicating the encoded results in the encoded file, and stores the stored addresses at the addresses of the files. In the decryption process, the address of the file to be decrypted is referred to from the address of each file in the trailer section using a pointer to the address of each file in the header section. In the decoding process, a pointer to the dynamic dictionary in the header part is used to refer to the dynamic dictionary. In the search processing, the address of the hashed index to be searched is referred to from the address of each hashed index of the trailer unit using a pointer to the address of each hashed index of the header unit.
[実施例1に係る検索処理の一例]
 図5は、検索対象を入力した画像の一例を示す図である。図5に示すように、検索装置では、検索条件の有効範囲として、「帳票」、「ページ」、「レコード」とを選択可能となっている。検索条件の有効範囲は、検索を行う単位を表している。例えば、「帳票」が選択されている場合には、帳票単位で検索が行われる。また、例えば、「ページ」が選択されている場合には、ページ単位で検索が行われる。例えば、「すべて」が選択されている場合には、検索を行う単位を指定せずに、検索が行われる。検索装置では、項目条件として、例えば、3つの検索条件で検索可能となっている。ここでは、検索条件の有効範囲として、「すべて」が選択され、検索条件として「商品名」が設定され、検索対象として「冷蔵庫」が入力された場合について説明する。なお、検索条件は、直接入力可能であってもよい。検索対象として日本語が入力された場合には、検索対象の文字列は、1文字ごとに分けられ、検索が行われる。
[Example of Search Processing According to Embodiment 1]
FIG. 5 is a diagram illustrating an example of an image in which a search target is input. As shown in FIG. 5, in the search device, “form”, “page”, and “record” can be selected as the effective range of the search condition. The effective range of the search condition represents a unit for performing the search. For example, when “form” is selected, the search is performed in units of forms. For example, when “page” is selected, the search is performed in units of pages. For example, when “all” is selected, the search is performed without designating the unit for performing the search. In the search device, for example, it is possible to search using three search conditions as item conditions. Here, a case will be described in which “all” is selected as the effective range of the search condition, “product name” is set as the search condition, and “refrigerator” is input as the search target. The search condition may be directly input. When Japanese is input as a search target, the search target character string is divided for each character and the search is performed.
 図6は、実施例1の検索処理の一例を示す図である。図6に示すように、検索処理を実行する検索装置は、入力された検索対象の「冷蔵庫」をもとに、2次元ハッシュ化インデックスHI1を参照する。検索装置は、「冷」、「蔵」、「庫」に対応する各単語IDが存在するファイルIDを取得する。そして、検索装置は、第1の3次元ハッシュ化インデックスHI2に、単語IDとファイルIDとを指定して、単語IDの位置情報を特定する。また、検索装置は、第2の3次元ハッシュ化インデックスHI3に、検索条件の「商品名」とファイルIDとを指定して、帳票の項目「商品名」の位置情報を特定する。 FIG. 6 is a diagram illustrating an example of search processing according to the first embodiment. As shown in FIG. 6, the search device that executes the search process refers to the two-dimensional hashed index HI1 based on the input “refrigerator” to be searched. The search device acquires a file ID in which each word ID corresponding to “cold”, “stored”, and “stored” exists. Then, the search device specifies the word ID and the file ID in the first three-dimensional hashed index HI2, and specifies the position information of the word ID. In addition, the search device specifies the position information of the item “product name” of the form by designating the “product name” and the file ID of the search condition in the second three-dimensional hashed index HI3.
 検索処理の一例を、以下で詳しく説明する。検索装置は、検索対象の文字列の入力を受け付けると、2次元ハッシュ化インデックスHI1を参照し、受け付けた検索対象が示す単語IDに対するハッシュ化ビットマップを抽出する。検索装置は、検索対象として受け付けられた「冷蔵庫」を「冷」、「蔵」、「庫」に分けて、各文字に対応する単語IDを読み出す。検索装置は、「冷」に対応する単語ID「D000h」を読み出す。検索装置は、「蔵」に対応する単語ID「D001h」を読み出す。検索装置は、「庫」に対応する単語ID「D002h」を読み出す。そして、検索装置は、単語ID「D000h」に対するハッシュ化ビットマップh4を2次元ハッシュ化インデックスHI1から抽出する。ハッシュ化ビットマップh4には、底29のハッシュ化ビットマップh41と底31のハッシュ化ビットマップh42とが含まれる。検索装置は、単語ID「D001h」に対するハッシュ化ビットマップh5を2次元ハッシュ化インデックスHI1から抽出する。ハッシュ化ビットマップh5には、底29のハッシュ化ビットマップh51と底31のハッシュ化ビットマップh52とが含まれる。検索装置は、単語ID「D002h」に対するハッシュ化ビットマップh6を2次元ハッシュ化インデックスHI1から抽出する。ハッシュ化ビットマップh6には、底29のハッシュ化ビットマップh61と底31のハッシュ化ビットマップh62とが含まれる。 An example of the search process will be described in detail below. When receiving the input of the search target character string, the search device refers to the two-dimensional hashed index HI1 and extracts a hashed bitmap for the word ID indicated by the received search target. The search device divides the “refrigerator” received as the search target into “cold”, “stored”, and “storage”, and reads the word ID corresponding to each character. The search device reads the word ID “D000h” corresponding to “cold”. The search device reads the word ID “D001h” corresponding to “Kura”. The search device reads the word ID “D002h” corresponding to “box”. Then, the search device extracts the hashed bitmap h4 for the word ID “D000h” from the two-dimensional hashed index HI1. The hashed bitmap h4 includes a hashed bitmap h41 at the base 29 and a hashed bitmap h42 at the base 31. The search device extracts the hashed bitmap h5 for the word ID “D001h” from the two-dimensional hashed index HI1. The hashed bitmap h5 includes a hashed bitmap h51 at the base 29 and a hashed bitmap h52 at the base 31. The search device extracts the hashed bitmap h6 for the word ID “D002h” from the two-dimensional hashed index HI1. The hashed bitmap h6 includes a hashed bitmap h61 on the bottom 29 and a hashed bitmap h62 on the bottom 31.
 検索装置は、抽出された各単語IDに対するハッシュ化ビットマップを復元する。なお、ハッシュ化ビットマップの復元処理は、後述する。復元結果は、単語IDに対応するビットマップで表わされる。ここでは、検索装置は、単語ID「D000h」に対するハッシュ化ビットマップh4を復元し、ビットマップb4を復元結果として出力する。検索装置は、単語ID「D001h」に対するハッシュ化ビットマップh5を復元し、ビットマップb5を復元結果として出力する。検索装置は、単語ID「D002h」に対するハッシュ化ビットマップh6を復元し、ビットマップb6を復元結果として出力する。 The search device restores a hashed bitmap for each extracted word ID. The hashed bitmap restoration process will be described later. The restoration result is represented by a bitmap corresponding to the word ID. Here, the search device restores the hashed bitmap h4 for the word ID “D000h” and outputs the bitmap b4 as the restoration result. The search device restores the hashed bitmap h5 for the word ID “D001h” and outputs the bitmap b5 as the restoration result. The search device restores the hashed bitmap h6 for the word ID “D002h” and outputs the bitmap b6 as the restoration result.
 また、検索装置は、単語ID「D000h」のビットマップb4と、単語ID「D001h」のビットマップb5と、単語ID「D002h」のビットマップとのAND演算を行う。検索装置は、AND結果のビットがON(「1」)であるファイルIDを出力する。すなわち、検索装置は、単語ID「D000h」が示す「冷」と、単語ID「D001h」が示す「蔵」と、単語ID「D002h」が示す「庫」と、を含むファイルのファイルIDを絞り込む。ここでは、ファイルIDとして「3」が出力される。 Also, the search device performs an AND operation on the bitmap b4 with the word ID “D000h”, the bitmap b5 with the word ID “D001h”, and the bitmap with the word ID “D002h”. The search device outputs a file ID whose bit of the AND result is ON (“1”). That is, the search device narrows down file IDs of files including “cold” indicated by the word ID “D000h”, “kura” indicated by the word ID “D001h”, and “box” indicated by the word ID “D002h”. . Here, “3” is output as the file ID.
 また、検索装置は、ファイルIDを絞り込んだ後、第1の3次元ハッシュ化インデックスHI2を参照し、単語ID、およびファイルIDに対するハッシュ化ビットマップを抽出する。ここでは、検索装置は、単語ID「D000h」、およびファイルID「3」に対するハッシュ化ビットマップh7を第1の3次元ハッシュ化インデックスHI2から抽出する。ハッシュ化ビットマップh7には、底29のハッシュ化ビットマップh71と底31のハッシュ化ビットマップh72とが含まれる。また、検索装置は、単語ID「D001h」、およびファイルID「3」に対するハッシュ化ビットマップh8を第1の3次元ハッシュ化インデックスHI2から抽出する。ハッシュ化ビットマップh8には、底29のハッシュ化ビットマップh81と底31のハッシュ化ビットマップh82とが含まれる。また、検索装置は、単語ID「D002h」、およびファイルID「3」に対するハッシュ化ビットマップh9を第1の3次元ハッシュ化インデックスHI2から抽出する。ハッシュ化ビットマップh9には、底29のハッシュ化ビットマップh91と底31のハッシュ化ビットマップh92とが含まれる。 In addition, after narrowing down the file ID, the search device refers to the first three-dimensional hashed index HI2 and extracts a hashed bitmap for the word ID and the file ID. Here, the search device extracts the hashed bitmap h7 for the word ID “D000h” and the file ID “3” from the first three-dimensional hashed index HI2. The hashed bitmap h7 includes a hashed bitmap h71 at the base 29 and a hashed bitmap h72 at the base 31. Further, the search device extracts the hashed bitmap h8 for the word ID “D001h” and the file ID “3” from the first three-dimensional hashed index HI2. The hashed bitmap h8 includes a hashed bitmap h81 at the bottom 29 and a hashed bitmap h82 at the bottom 31. Further, the search device extracts the hashed bitmap h9 for the word ID “D002h” and the file ID “3” from the first three-dimensional hashed index HI2. The hashed bitmap h9 includes a hashed bitmap h91 at the bottom 29 and a hashed bitmap h92 at the bottom 31.
 また、検索装置は、抽出されたハッシュ化ビットマップh7~h9を復元する。復元結果は、単語ID、およびファイルIDに対応するビットマップで表わされる。ここでは、検索装置は、単語ID「D000h」、およびファイルID「3」に対するハッシュ化ビットマップh7を復元し、ビットマップb7を復元結果として出力する。検索装置は、単語ID「D001h」、およびファイルID「3」に対するハッシュ化ビットマップh8を復元し、ビットマップb8を復元結果として出力する。検索装置は、単語ID「D002h」、およびファイルID「3」に対するハッシュ化ビットマップh9を復元し、ビットマップb9を復元結果として出力する。 In addition, the search device restores the extracted hashed bitmaps h7 to h9. The restoration result is represented by a bit map corresponding to the word ID and the file ID. Here, the search device restores the hashed bitmap h7 for the word ID “D000h” and the file ID “3”, and outputs the bitmap b7 as the restoration result. The search device restores the hashed bitmap h8 for the word ID “D001h” and the file ID “3”, and outputs the bitmap b8 as a restoration result. The search device restores the hashed bitmap h9 for the word ID “D002h” and the file ID “3”, and outputs the bitmap b9 as the restoration result.
 また、検索装置は、復元結果として出力されたビットマップb7~b9のビットがON(「1」)を示すOffset(位置)を特定する。例えば、検索装置は、ファイルID「3」、および単語ID「D000h」のビットマップb7において、ビット値が「1」のOffset(位置)を特定する。ここでは、Offset(位置)「2」が特定される。また、検索装置は、ファイルID「3」、および単語ID「D001h」のビットマップb8において、ビット値が「1」のOffset(位置)を特定する。ここでは、Offset(位置)「3」が特定される。また、検索装置は、ファイルID「3」、および単語ID「D002h」のビットマップb9において、ビット値が「1」のOffset(位置)を特定する。ここでは、Offset(位置)「4」が特定される。 Also, the search device specifies an offset (position) where the bits of the bitmaps b7 to b9 output as the restoration result indicate ON (“1”). For example, the search device specifies an offset (position) whose bit value is “1” in the bitmap b7 of the file ID “3” and the word ID “D000h”. Here, Offset (position) “2” is specified. Further, the search device specifies an Offset (position) having a bit value “1” in the bitmap b8 of the file ID “3” and the word ID “D001h”. Here, Offset (position) “3” is specified. Further, the search device specifies an Offset (position) having a bit value “1” in the bitmap b9 of the file ID “3” and the word ID “D002h”. Here, Offset (position) “4” is specified.
 検索装置は、特定したOffset(位置)に基づいて、検索対象の文字列がファイルに含まれるか否か判別する。図7は、実施例1に係る文字列判別処理の一例を示す図である。 The search device determines whether or not the search target character string is included in the file based on the specified Offset (position). FIG. 7 is a diagram illustrating an example of the character string determination process according to the first embodiment.
 検索装置は、例えば、図7に示すように、単語ID「D000h」、「D001h」、「D002h」について、Offset(位置)が特定されると、検索対象の文字列に応じて、単語IDのビットマップb7~b9を配置する。ここでは、検索対象の文字列が「冷蔵庫」なので、検索装置は、ビットマップb7、ビットマップb8、ビットマップb9の順に配置する。そして、検索装置は、検索対象の文字列の最初の文字である「冷」のビットマップb7でビット値が「1」であるビットを1つ左にシフトする。これにより、「冷」のビットマップb7では、3ビット目のビットが「1」となる。検索装置は、シフトさせた「冷」のビットマップb7と、次の文字である「蔵」のビットマップb8とのAND演算を行う。検索装置は、AND演算の結果が「1」である場合、AND結果のビットマップでビット値が「1」であるビットを1つ左にシフトする。これにより、AND結果のビットマップでは、4ビット目のビットが「1」となる。検索装置は、シフトさせたAND結果のビットマップと、さらに次の文字である「庫」のビットマップb9とのAND演算を行う。検索装置は、AND演算の結果が「1」である場合、検索対象がファイルに含まれていると判別する。なお、検索装置は、AND演算のいずれかの結果が「0」である場合には、検索対象がファイルに含まれていないと判別する。 For example, as shown in FIG. 7, when the offset (position) is specified for the word IDs “D000h”, “D001h”, and “D002h”, the search device determines the word ID according to the character string to be searched. Bitmaps b7 to b9 are arranged. Here, since the character string to be searched is “refrigerator”, the search device arranges bitmap b7, bitmap b8, and bitmap b9 in this order. Then, the search device shifts the bit whose bit value is “1” in the “cold” bitmap b7, which is the first character of the character string to be searched, to the left by one. As a result, in the “cold” bitmap b7, the third bit is “1”. The search device performs an AND operation on the shifted “cold” bitmap b7 and the next character “kura” bitmap b8. When the result of the AND operation is “1”, the search device shifts a bit whose bit value is “1” in the AND result bitmap to the left by one. As a result, in the bit map of the AND result, the fourth bit is “1”. The search device performs an AND operation on the bitmap of the shifted AND result and the bitmap “b9” of “K” as the next character. When the result of the AND operation is “1”, the search device determines that the search target is included in the file. Note that when any result of the AND operation is “0”, the search device determines that the search target is not included in the file.
 このように検索装置は、AND演算と、ビットのシフトとを組み合わせることで、検索対象がファイルに含まれているか否か判別する。 In this way, the search device determines whether or not the search target is included in the file by combining the AND operation and the bit shift.
 図6に戻り、検索装置は、ファイルIDを絞り込んだ後、第2の3次元ハッシュ化インデックスHI3を参照し、ファイルIDに含まれる帳票の項目に対するハッシュ化ビットマップを抽出する。ここでは、検索装置は、ファイルID「3」に含まれる帳票の項目に対するハッシュ化ビットマップを第2の3次元ハッシュ化インデックスHI3から抽出する。検索装置は、ファイル3に含まれる帳票の項目「日付」、「商品コード」、「商品名」、「単価」などに対応する、ハッシュ化ビットマップh10~h13を第2の3次元ハッシュ化インデックスHI3から抽出する。ハッシュ化ビットマップh10には、底29のハッシュ化ビットマップh101と底31のハッシュ化ビットマップh102とが含まれる。ハッシュ化ビットマップh11には、底29のハッシュ化ビットマップh111と底31のハッシュ化ビットマップh112とが含まれる。ハッシュ化ビットマップh12には、底29のハッシュ化ビットマップh121と底31のハッシュ化ビットマップh122とが含まれる。ハッシュ化ビットマップh13には、底29のハッシュ化ビットマップh131と底31のハッシュ化ビットマップh132とが含まれる。 Referring back to FIG. 6, after narrowing down the file ID, the search device refers to the second three-dimensional hashed index HI3 and extracts a hashed bitmap for the form item included in the file ID. Here, the search device extracts the hashed bitmap for the form item included in the file ID “3” from the second three-dimensional hashed index HI3. The search device uses the second three-dimensional hashed index for the hashed bitmaps h10 to h13 corresponding to the items “date”, “product code”, “product name”, “unit price”, etc. of the form included in the file 3. Extract from HI3. The hashed bitmap h10 includes a hashed bitmap h101 at the bottom 29 and a hashed bitmap h102 at the bottom 31. The hashed bitmap h11 includes a hashed bitmap h111 at the bottom 29 and a hashed bitmap h112 at the bottom 31. The hashed bitmap h12 includes a base 29 hashed bitmap h121 and a base 31 hashed bitmap h122. The hashed bitmap h13 includes a hashed bitmap h131 at the base 29 and a hashed bitmap h132 at the base 31.
 また、検索装置は、抽出されたハッシュ化ビットマップh10~h13を復元する。復元結果は、ファイルID、および帳票の項目に対応するビットマップで表される。ここでは、検索装置は、ハッシュ化ビットマップh10~h13を復元し、ビットマップb10~b13を復元結果として出力する。 Also, the search device restores the extracted hashed bitmaps h10 to h13. The restoration result is represented by a file ID and a bitmap corresponding to the item of the form. Here, the search apparatus restores the hashed bitmaps h10 to h13 and outputs the bitmaps b10 to b13 as the restoration results.
 また、検索装置は、復元結果として出力されたビットマップb10~b13のビットがON(「1」)を示すOffset(位置)を特定する。例えば、検索装置は、ファイルID「3」、および帳票の項目「日付」のビットマップb10において、ビットマップb10のビット値が「1」のOffset(位置)を特定する。ここでは、例えば、Offset(位置)「0」が特定される。検索装置は、同様に、帳票の各項目について、ビットマップb11~b13のビット値が「1」のOffset(位置)を特定する。 Also, the search device specifies an offset (position) in which the bits of the bitmaps b10 to b13 output as the restoration result indicate ON (“1”). For example, in the bitmap b10 of the file ID “3” and the item “date” of the form, the search device specifies an offset (position) where the bit value of the bitmap b10 is “1”. Here, for example, Offset (position) “0” is specified. Similarly, the search device specifies an offset (position) where the bit values of the bitmaps b11 to b13 are “1” for each item of the form.
 検索装置は、特定したOffset(位置)に基づいて、検索対象の文字列が検索条件の項目に含まれるか否か判別する。図8は、実施例1に係る検索条件判別処理の一例を示す図である。 The search device determines whether or not the search target character string is included in the search condition item based on the specified offset (position). FIG. 8 is a diagram illustrating an example of search condition determination processing according to the first embodiment.
 ここでは、検索装置は、特定された帳票の項目のOffset(位置)と、図7を用いて説明した「冷蔵庫」についてのAND演算の結果とに基づいて、検索条件判別処理を行う。検索装置は、図7において最終的なAND結果のビットマップにおいて、ビット値が「1」となるOffset(位置)が、検索条件として選択された「商品名」の項目に含まれるか否か判別する。最終的なAND結果のビットマップでは、4ビット目のビット値が「1」となる。「商品名」の項目のビットマップでは、2ビット目が「1」となり、「単価」の項目のビットマップでは、5ビット目が「1」となる。そのため、「商品名」の項目に含まれる文字がビットマップにおいて2ビット目~4ビット目に格納されていることがわかる。最終的なAND結果のビットマップでは、4ビット目が「1」である。これにより、検索装置は、ファイル3において、検索対象の文字列「冷蔵庫」が、「商品名」の項目に存在すると判別する。なお、例えば、最終的なAND結果のビットマップでビット値が「1」となる位置が、1ビット目や、5ビット目である場合には、検索装置は、検索対象の文字列「冷蔵庫」が、「商品名」の項目に存在しないと判別する。 Here, the search device performs a search condition determination process based on the offset (position) of the identified form item and the result of the AND operation on the “refrigerator” described with reference to FIG. The search device determines whether the Offset (position) where the bit value is “1” is included in the item “product name” selected as the search condition in the final AND result bitmap in FIG. 7. To do. In the final AND result bitmap, the bit value of the fourth bit is “1”. In the “product name” item bitmap, the second bit is “1”, and in the “unit price” item bitmap, the fifth bit is “1”. Therefore, it can be seen that characters included in the item “product name” are stored in the second to fourth bits in the bitmap. In the final AND result bitmap, the fourth bit is “1”. Thereby, the search device determines that the character string “refrigerator” to be searched exists in the item “product name” in the file 3. For example, when the position where the bit value is “1” in the final AND result bit map is the first bit or the fifth bit, the search device sets the character string “refrigerator” to be searched. However, it is determined that the item “product name” does not exist.
 検索装置は、例えば、帳票の項目「商品名」に文字列「冷蔵庫」を含むファイル名を出力する。なお、検索装置は、例えば、帳票の項目「商品名」に文字列「冷蔵庫」を含むファイル名、および「冷蔵庫」を含む前後の文字列を表示してもよい。このように、検索装置は、ハッシュ化インデックス(ビットマップ型インデックス)を用いて、検索条件を満たす検索対象の文字列について検索を行い、検索結果を出力する。これにより、検索装置は、検索対象の文字列に対する検索結果を速やかに出力することができる。 The search device outputs, for example, a file name including the character string “refrigerator” in the item “product name” of the form. The search device may display, for example, a file name including the character string “refrigerator” in the item “product name” of the form, and a character string before and after including “refrigerator”. As described above, the search device uses the hashed index (bitmap type index) to search for the search target character string that satisfies the search condition, and outputs the search result. Thereby, the search device can quickly output a search result for the character string to be searched.
[実施例1に係るハッシュ化ビットマップ復元処理の一例]
 次に、ハッシュ化ビットマップを復元する処理の一例を、図9を参照して説明する。図9は、実施例1に係るハッシュ化ビットマップの復元処理の一例を示す図である。ここでは、ハッシュ化ビットマップh4を復元する場合を一例として説明する。
[Example of hashed bitmap restoration processing according to Embodiment 1]
Next, an example of processing for restoring the hashed bitmap will be described with reference to FIG. FIG. 9 is a diagram illustrating an example of the hashed bitmap restoration process according to the first embodiment. Here, a case where the hashed bitmap h4 is restored will be described as an example.
 検索装置は、ハッシュ化ビットマップh4に含まれる、ハッシュ化ビットマップh41、h42をそれぞれビットマップに展開する(復元1)。ここでは、検索装置は、1つの底のハッシュ化ビットマップの復元先のビットマップについて、底に整数(0~)を乗算して得られた値にハッシュ化ビットマップの各ビットの位置を加算した位置に、ハッシュ化ビットマップの各ビットの値を設定する。一例として、検索装置は、底29のハッシュ化ビットマップh41の復元先のビットマップb41について、底29に「0」を乗算した値にハッシュ化ビットマップh41の各ビットの位置を加算した位置に、ハッシュ化ビットマップh41の各ビットの値を設定する。検索装置は、底29のハッシュ化ビットマップh41の復元先のビットマップb41について、底29に「1」を乗算した値にハッシュ化ビットマップh41の各ビットの位置を加算した位置に、ハッシュ化ビットマップh41の各ビットの値を設定する。検索装置は、復元先の底29のビットマップb41の最大ビットの位置のビットの値が設定されるまで繰り返す。同様に、検索装置は、底31のハッシュ化ビットマップh42の復元先のビットマップb42について、底31に「0」を乗算した値にハッシュ化ビットマップh42の各ビットの位置を加算した位置に、ハッシュ化ビットマップh42の各ビットの値を設定する。検索装置は、底31のハッシュ化ビットマップh42の復元先のビットマップb42について、底31に「1」を乗算した値にハッシュ化ビットマップh42の各ビットの位置を加算した位置に、ハッシュ化ビットマップh42の各ビットの値を設定する。検索装置は、復元先のビットマップb42の最大ビットの位置のビットの値が設定されるまで繰り返す。 The search device expands the hashed bitmaps h41 and h42 included in the hashed bitmap h4 into bitmaps (restoration 1). Here, the search device adds the position of each bit in the hashed bitmap to the value obtained by multiplying the base by an integer (0 to) for the restoration destination bitmap of one base hashed bitmap. The value of each bit of the hashed bitmap is set at the position. As an example, the search device adds the position of each bit of the hashed bitmap h41 to the value obtained by multiplying the base 29 by “0” for the restoration destination bitmap b41 of the hashed bitmap h41 of the base 29. The value of each bit of the hashed bitmap h41 is set. The retrieval apparatus performs hashing at the position obtained by adding the position of each bit of the hashed bitmap h41 to the value obtained by multiplying the base 29 by “1” for the restoration destination bitmap b41 of the hashed bitmap h41 of the base 29. The value of each bit of the bitmap h41 is set. The search device repeats until the value of the bit at the position of the maximum bit of the bitmap b41 in the bottom 29 of the restoration destination is set. Similarly, the search device adds the position of each bit of the hashed bitmap h42 to the value obtained by multiplying the base 31 by “0” for the restoration destination bitmap b42 of the hashed bitmap h42 of the base 31. The value of each bit of the hashed bitmap h42 is set. The retrieval apparatus performs hashing at the position obtained by adding the position of each bit of the hashed bitmap h42 to the value obtained by multiplying the base 31 by “1” for the restoration destination bitmap b42 of the hashed bitmap h42 of the base 31. The value of each bit of the bitmap h42 is set. The search device repeats until the value of the bit at the position of the maximum bit in the restoration destination bitmap b42 is set.
 検索装置は、復元された各ビットマップの対応する位置のビットをAND演算する(復元2)。ここでは、検索装置は、底29のハッシュ化ビットマップh41から復元されたビットマップb41と、底31のハッシュ化ビットマップh42から復元されたビットマップb42とをAND演算する。検索装置は、AND結果のビットマップb4を復元結果として出力する。 The search device performs an AND operation on the bit at the corresponding position of each restored bitmap (restoration 2). Here, the search device performs an AND operation on the bitmap b41 restored from the hashed bitmap h41 in the base 29 and the bitmap b42 restored from the hashed bitmap h42 in the base 31. The retrieval device outputs the AND result bitmap b4 as a restoration result.
 なお、検索装置は、第1の3次元ハッシュ化インデックスHI2のハッシュ化ビットマップも、2次元ハッシュ化インデックスHI1のハッシュ化ビットマップの場合と同様に、復元する。また、検索装置は、第2の3次元ハッシュ化インデックスHI3のハッシュ化ビットマップも、2次元ハッシュ化インデックスHI1のハッシュ化ビットマップの場合と同様に、復元する。 Note that the search device also restores the hashed bitmap of the first three-dimensional hashed index HI2 in the same manner as the hashed bitmap of the two-dimensional hashed index HI1. In addition, the search device also restores the hashed bitmap of the second three-dimensional hashed index HI3 in the same manner as the hashed bitmap of the two-dimensional hashed index HI1.
[実施例1に係る帳票出力装置の構成]
 次に、図10を参照して、実施例1に係る帳票出力装置100の構成について説明する。図10は、実施例1に係る帳票出力装置100の構成を示す機能ブロック図である。図10に示すように、帳票出力装置100は、制御部110と、記憶部120とを有する。
[Configuration of form output device according to Embodiment 1]
Next, the configuration of the form output apparatus 100 according to the first embodiment will be described with reference to FIG. FIG. 10 is a functional block diagram illustrating the configuration of the form output device 100 according to the first embodiment. As illustrated in FIG. 10, the form output device 100 includes a control unit 110 and a storage unit 120.
 制御部110は、図1に示したインデックス生成処理を実行する処理部である。制御部110は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。そして、制御部110は、例えば、ASICやFPGAなどの集積回路の電子回路に対応する。または、制御部110は、CPUやMPUなどの電子回路に対応する。また、制御部110は、帳票出力形式データ生成部111、符号化処理部112、埋込部113、および出力部114を有する。 The control unit 110 is a processing unit that executes the index generation processing shown in FIG. The control unit 110 has an internal memory for storing programs defining various processing procedures and control data, and executes various processes using these. And the control part 110 respond | corresponds to the electronic circuit of integrated circuits, such as ASIC and FPGA, for example. Or the control part 110 respond | corresponds to electronic circuits, such as CPU and MPU. Further, the control unit 110 includes a form output format data generation unit 111, an encoding processing unit 112, an embedding unit 113, and an output unit 114.
 記憶部120は、例えばフラッシュメモリやFRAM(登録商標)などの不揮発性の半導体メモリ素子などの記憶装置に対応する。記憶部120は、符号化辞書121と、2次元ハッシュ化インデックス122と、第1の3次元ハッシュ化インデックス123と、第2の3次元ハッシュ化インデックス124と、符号化データ125とを有する。 The storage unit 120 corresponds to a storage device such as a nonvolatile semiconductor memory element such as a flash memory or FRAM (registered trademark). The storage unit 120 includes an encoding dictionary 121, a two-dimensional hashed index 122, a first three-dimensional hashed index 123, a second three-dimensional hashed index 124, and encoded data 125.
 帳票出力形式データ生成部111は、符号化対象のファイルを記憶領域に読み出す。帳票出力形式データ生成部111は、読み出したファイルに含まれる帳票データから帳票出力形式データを生成する。帳票出力形式データ生成部111は、生成した帳票出力形式データを符号化処理部112に出力する。なお、帳票出力形式データ生成部111は、帳票データから帳票データのページ情報を抽出する。例えば、帳票出力形式データ生成部111は、帳票出力形式データを生成する前に、定義ファイルを検索し、ページ情報を抽出する。また、例えば、帳票出力形式データ生成部111は、帳票出力形式データを生成する過程で、ページ情報を抽出しても良い。なお、例えば、帳票出力形式データ生成部111は、ページ情報を、帳票出力形式データに追記する。また、例えば、帳票出力形式データ生成部111は、帳票出力形式データとは別に、ページ情報として出力しても良い。 The form output format data generation unit 111 reads the encoding target file into the storage area. The form output format data generation unit 111 generates form output format data from the form data included in the read file. The form output format data generation unit 111 outputs the generated form output format data to the encoding processing unit 112. Note that the form output format data generation unit 111 extracts the page information of the form data from the form data. For example, the form output format data generation unit 111 searches for a definition file and extracts page information before generating form output format data. Further, for example, the form output format data generation unit 111 may extract page information in the process of generating form output format data. For example, the form output format data generation unit 111 adds page information to the form output format data. Further, for example, the form output format data generation unit 111 may output it as page information separately from the form output format data.
 符号化処理部112は、符号化部112aと、インデックス生成部112bとを有する。符号化部112aは、符号化辞書121に基づいて、帳票出力形式データに含まれる文字列を符号化し、符号化データ125を生成する。符号化部112aは、帳票出力形式データに含まれる文字列が静的辞書に登録されているか否かを判定する。一例として、符号化部112aは、文字列が静的辞書のビットフィルタにヒットするか否かを判定する。符号化部112aは、文字列が静的辞書に登録されている場合には、文字列を静的辞書に基づいて符号化する。一例として、符号化部112aは、静的辞書に基づいて、文字列を、文字列に対応する静的コード(単語ID)に符号化する。符号化部112aは、符号化された単語IDをインデックス生成部112bに出力する。 The encoding processing unit 112 includes an encoding unit 112a and an index generation unit 112b. The encoding unit 112 a encodes a character string included in the form output format data based on the encoding dictionary 121, and generates encoded data 125. The encoding unit 112a determines whether or not a character string included in the form output format data is registered in the static dictionary. As an example, the encoding unit 112a determines whether or not the character string hits the bit filter of the static dictionary. When the character string is registered in the static dictionary, the encoding unit 112a encodes the character string based on the static dictionary. As an example, the encoding unit 112a encodes a character string into a static code (word ID) corresponding to the character string based on a static dictionary. The encoding unit 112a outputs the encoded word ID to the index generation unit 112b.
 符号化部112aは、文字列が静的辞書に登録されていない場合には、文字列を動的辞書に基づいて符号化する。一例として、符号化部112aは、文字列が動的辞書のバッファ部に格納されているか否かを判定する。符号化部112aは、文字列が動的辞書のバッファ部に格納されていない場合には、文字列をバッファ部に格納するとともに、文字列を格納した格納位置、および格納したデータ長をアドレステーブルに格納する。符号化部112aは、文字列を、文字列に対応付けられた、アドレステーブルの動的コード(単語ID)に符号化する。また、符号化部112aは、文字列が、動的辞書のバッファ部に格納されている場合には、文字列を、文字列に対応する動的コード(単語ID)に符号化する。符号化部112aは、符号化された単語ID、および単語IDが示す文字列の位置を含む情報をインデックス生成部112bに出力する。 The encoding unit 112a encodes the character string based on the dynamic dictionary when the character string is not registered in the static dictionary. As an example, the encoding unit 112a determines whether or not a character string is stored in the buffer unit of the dynamic dictionary. When the character string is not stored in the buffer unit of the dynamic dictionary, the encoding unit 112a stores the character string in the buffer unit, and stores the storage position where the character string is stored and the stored data length in the address table. To store. The encoding unit 112a encodes the character string into a dynamic code (word ID) in the address table associated with the character string. In addition, when the character string is stored in the buffer unit of the dynamic dictionary, the encoding unit 112a encodes the character string into a dynamic code (word ID) corresponding to the character string. The encoding unit 112a outputs information including the encoded word ID and the position of the character string indicated by the word ID to the index generation unit 112b.
 インデックス生成部112bは、ファイルのファイルID、および符号化された単語IDに基づいて、2次元ハッシュ化インデックス122を生成する。例えば、インデックス生成部112bは、符号化部112aから出力された情報を受け取る。インデックス生成部112bは、受け取った情報に基づいて、単語IDが存在するファイルのファイルIDに対応するビットマップを生成する。インデックス生成部112bは、生成したビットマップについて、底α、底βをそれぞれ用いてハッシュ化ビットマップを生成する。すなわち、インデックス生成部112bは、ファイルに対する、単語IDが示す文字列の存否を2次元ハッシュ化インデックス122に設定する。 The index generation unit 112b generates a two-dimensional hashed index 122 based on the file ID of the file and the encoded word ID. For example, the index generation unit 112b receives information output from the encoding unit 112a. The index generation unit 112b generates a bitmap corresponding to the file ID of the file in which the word ID exists based on the received information. The index generation unit 112b generates a hashed bitmap using the base α and the base β for the generated bitmap. That is, the index generation unit 112b sets the presence or absence of the character string indicated by the word ID for the file in the two-dimensional hashed index 122.
 一例として、インデックス生成部112bは、単語IDに対応するビットマップそれぞれについて、2つのハッシュ値(底)に基づいたハッシュ化ビットマップを生成する。すなわち、インデックス生成部112bは、ビットマップの0ビット目からの各ビットを順番にハッシュ化ビットマップの0ビット目から設定し、(底-1)ビット目まで設定する。そして、インデックス生成部112bは、再度折り返してハッシュ化ビットマップの0ビット目から既にハッシュ化ビットマップに設定された値とOR演算した値を設定する。そして、インデックス生成部112bは、全ての単語IDに対応するビットマップに対してハッシュ化ビットマップを生成すると、生成されたハッシュ化ビットマップを纏めた2次元ハッシュ化インデックス122を記憶部120に格納する。 As an example, the index generation unit 112b generates a hashed bitmap based on two hash values (bottom) for each bitmap corresponding to the word ID. That is, the index generation unit 112b sequentially sets each bit from the 0th bit of the bitmap from the 0th bit of the hashed bitmap, and sets up to the (base-1) th bit. Then, the index generation unit 112b loops again and sets a value obtained by OR operation with a value already set in the hashed bitmap from the 0th bit of the hashed bitmap. Then, when the index generation unit 112b generates hashed bitmaps for the bitmaps corresponding to all the word IDs, the two-dimensional hashed index 122 in which the generated hashed bitmaps are collected is stored in the storage unit 120. To do.
 また、インデックス生成部112bは、ファイルのファイルID、符号化された単語ID、および単語IDが示す文字列の位置に基づいて、第1の3次元ハッシュ化インデックス123を生成する。例えば、インデックス生成部112bは、受け取った情報に基づいて、単語IDが存在するファイルのファイルID、およびファイル内の単語IDの位置に対応するビットマップを生成する。インデックス生成部112bは、生成したビットマップについて、底α、底βをそれぞれ用いてハッシュ化ビットマップを生成する。すなわち、インデックス生成部112bは、ファイル(帳票データ)に対する、単語ID、および単語IDが示す文字列の位置を第1の3次元ハッシュ化インデックス123に設定する。 Also, the index generation unit 112b generates the first three-dimensional hashed index 123 based on the file ID of the file, the encoded word ID, and the position of the character string indicated by the word ID. For example, the index generation unit 112b generates a bitmap corresponding to the file ID of the file in which the word ID exists and the position of the word ID in the file based on the received information. The index generation unit 112b generates a hashed bitmap using the base α and the base β for the generated bitmap. That is, the index generation unit 112b sets the word ID and the position of the character string indicated by the word ID for the file (form data) in the first three-dimensional hashed index 123.
 またインデックス生成部112bは、ファイルのファイルID、帳票の項目、および帳票の項目の位置に基づいて、第2の3次元ハッシュ化インデックス124を生成する。例えば、インデックス生成部112bは、受け取った情報に基づいて、単語IDが存在するファイルのファイルID、および帳票の項目の位置に対応するビットマップを生成する。インデックス生成部112bは、生成したビットマップについて、底α、底βをそれぞれ用いてハッシュ化ビットマップを生成する。すなわち、インデックス生成部112bは、ファイル(帳票データ)に対する、帳票の項目、および帳票データにおける帳票の項目の位置を第2の3次元ハッシュ化インデックス124に設定する。 Also, the index generation unit 112b generates the second three-dimensional hashed index 124 based on the file ID of the file, the form item, and the position of the form item. For example, the index generation unit 112b generates a bitmap corresponding to the file ID of the file in which the word ID exists and the position of the item of the form based on the received information. The index generation unit 112b generates a hashed bitmap using the base α and the base β for the generated bitmap. That is, the index generation unit 112b sets the position of the item of the form with respect to the file (form data) and the position of the form item in the form data in the second three-dimensional hashed index 124.
 なお、第1の3次元ハッシュ化インデックス123、および第2の3次元ハッシュ化インデックス124の生成方法は、2次元ハッシュ化インデックス122の説明と同様であるので、その説明を省略する。インデックス生成部112bは、生成した、第1の3次元ハッシュ化インデックス123、および第2の3次元ハッシュ化インデックス124を記憶部120に格納する。 Note that the generation method of the first three-dimensional hashed index 123 and the second three-dimensional hashed index 124 is the same as the description of the two-dimensional hashed index 122, and thus the description thereof is omitted. The index generation unit 112b stores the generated first three-dimensional hashed index 123 and second three-dimensional hashed index 124 in the storage unit 120.
 埋込部113は、符号化辞書121の動的辞書と、符号化データ125と、各ハッシュ化インデックス122~124のインデックス情報とを有する符号化ファイルを、帳票ファイルに埋め込み、出力ファイルを生成する。これにより、インデックス付きの帳票ファイルが生成される。例えば、帳票ファイルがPDFファイルである場合には、埋込部113は、PDFファイルの拡張領域に、符号化ファイルを埋め込む。また、例えば、帳票ファイルが、帳票製品の独自圧縮ファイルである場合には、埋込部113は、符号化ファイルを帳票定義体などと一緒に圧縮し、出力ファイルを生成する。 The embedding unit 113 embeds an encoded file having a dynamic dictionary of the encoding dictionary 121, encoded data 125, and index information of each hashed index 122 to 124 into a form file, and generates an output file. . As a result, a form file with an index is generated. For example, when the form file is a PDF file, the embedding unit 113 embeds the encoded file in the extension area of the PDF file. For example, when the form file is a unique compressed file of the form product, the embedding unit 113 compresses the encoded file together with the form definition body and generates an output file.
 出力部114は、出力ファイルを、例えば、検索装置200(図12参照)へ転送する。 The output unit 114 transfers the output file to, for example, the search device 200 (see FIG. 12).
[実施例1に係る帳票ファイル生成処理の処理手順]
 次に、実施例1に係る帳票ファイル生成処理の処理手順について、図11を参照して説明する。図11は、実施例1に係る帳票ファイル生成処理のフローチャートの一例を示す図である。帳票ファイルは、インデックス付きの帳票ファイルである。
[Procedure for Form File Generation Processing According to Embodiment 1]
Next, the process procedure of the form file generation process according to the first embodiment will be described with reference to FIG. FIG. 11 is a diagram illustrating an example of a flowchart of the form file generation process according to the first embodiment. The form file is a form file with an index.
 帳票出力形式データ生成部111は、符号化対象のファイルを記憶領域に読み出す(S10)。帳票出力形式データ生成部111は、読み出したファイルに含まれる帳票データから帳票出力形式データを生成する(S11)。 The form output format data generation unit 111 reads the encoding target file into the storage area (S10). The form output format data generation unit 111 generates form output format data from the form data included in the read file (S11).
 符号化部112aは、符号化辞書121に基づいて、帳票出力形式データの文字列を単語IDに符号化する(S12)。なお、符号化部112aは、符号化辞書121(静的辞書、および動的辞書)に文字列が格納されていない場合には、新たに文字列を符号化し、動的辞書に格納する。 The encoding unit 112a encodes the character string of the form output format data into the word ID based on the encoding dictionary 121 (S12). If the character string is not stored in the encoding dictionary 121 (static dictionary and dynamic dictionary), the encoding unit 112a newly encodes the character string and stores it in the dynamic dictionary.
 インデックス生成部112bは、ファイルのファイルID、および単語IDに基づいて、2次元ハッシュ化インデックス122を生成する(S13)。インデックス生成部112bは、ファイルのファイルID、単語ID、およびファイル内における単語IDの位置に基づいて、第1の3次元ハッシュ化インデックス123を生成する(S14)。インデックス生成部112bは、ファイルのファイルID、帳票の項目、およびファイル内における帳票の項目の位置に基づいて、第2の3次元ハッシュ化インデックス124を生成する(S15)。 The index generation unit 112b generates a two-dimensional hashed index 122 based on the file ID and word ID of the file (S13). The index generation unit 112b generates the first three-dimensional hashed index 123 based on the file ID of the file, the word ID, and the position of the word ID in the file (S14). The index generating unit 112b generates the second three-dimensional hashed index 124 based on the file ID of the file, the item of the form, and the position of the form item in the file (S15).
 埋込部113は、符号化辞書121の動的辞書と、各ハッシュ化インデックス122~124とを有する符号化ファイルを帳票ファイルに埋め込み、出力ファイルを生成する(S16)。 The embedding unit 113 embeds the encoded file having the dynamic dictionary of the encoding dictionary 121 and the hashed indexes 122 to 124 in the form file, and generates an output file (S16).
 出力部114は、生成された出力ファイルを、例えば、検索装置200(図12参照)に出力する(S17)。 The output unit 114 outputs the generated output file to, for example, the search device 200 (see FIG. 12) (S17).
[実施例1に係る検索装置の構成]
 次に図12を参照して、実施例1に係る検索処理を実行する検索装置200の構成について説明する。図12は、実施例1に係る検索装置200の構成を示す機能ブロック図である。図12に示すように、検索装置200は、制御部210と記憶部220とを有する。
[Configuration of Search Device According to Embodiment 1]
Next, the configuration of the search device 200 that executes the search process according to the first embodiment will be described with reference to FIG. FIG. 12 is a functional block diagram illustrating the configuration of the search device 200 according to the first embodiment. As illustrated in FIG. 12, the search device 200 includes a control unit 210 and a storage unit 220.
 制御部210は、図6~図8に示した検索処理を実行する処理部である。制御部210は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。そして、制御部210は、例えば、ASICやFPGAなどの集積回路の電子回路に対応する。または、制御部210は、CPUやMPUなどの電子回路に対応する。また、制御部210は、検索対象受付部211と、第1の復元部212と、第2の復元部213と、検索処理部214と、検索結果出力部215とを有する。 The control unit 210 is a processing unit that executes the search processing shown in FIGS. The control unit 210 has an internal memory for storing programs defining various processing procedures and control data, and executes various processes using these. And the control part 210 respond | corresponds to the electronic circuit of integrated circuits, such as ASIC and FPGA, for example. Alternatively, the control unit 210 corresponds to an electronic circuit such as a CPU or MPU. In addition, the control unit 210 includes a search target reception unit 211, a first restoration unit 212, a second restoration unit 213, a search processing unit 214, and a search result output unit 215.
 記憶部220は、例えばフラッシュメモリやFRAM(登録商標)などの不揮発性の半導体メモリ素子などの記憶装置に対応する。記憶部220は、符号化辞書221、2次元ハッシュ化インデックス222、第1の3次元ハッシュ化インデックス223、第2の3次元ハッシュ化インデックス224、第1の復元ビットマップ225、第2の復元ビットマップ226、第3の復元ビットマップ227、絞込みビットマップ228、および符号化データ229を有する。第1の復元ビットマップ225は、2次元ハッシュ化インデックス222を展開したビットマップである。第2の復元ビットマップ226は、第1の3次元ハッシュ化インデックス223を展開したビットマップである。第3の復元ビットマップ227は、第2の3次元ハッシュ化インデックス224を展開したビットマップである。絞込みビットマップ228は、検索対象が複数の単語IDで表される文字列である場合に、第2の復元ビットマップ226をAND演算したAND結果のビットマップである。ANDのビットマップは、例えば、図7において、AND結果の「冷蔵庫」を示すビットマップが対応する。 The storage unit 220 corresponds to a storage device such as a nonvolatile semiconductor memory element such as a flash memory or FRAM (registered trademark). The storage unit 220 includes an encoding dictionary 221, a two-dimensional hashed index 222, a first three-dimensional hashed index 223, a second three-dimensional hashed index 224, a first restored bitmap 225, and a second restored bit. A map 226, a third restored bitmap 227, a narrowed bitmap 228, and encoded data 229 are included. The first restoration bitmap 225 is a bitmap in which the two-dimensional hashed index 222 is expanded. The second restored bitmap 226 is a bitmap in which the first three-dimensional hashed index 223 is expanded. The third restored bitmap 227 is a bitmap in which the second three-dimensional hashed index 224 is expanded. The narrow-down bitmap 228 is a bitmap of an AND result obtained by performing an AND operation on the second restoration bitmap 226 when the search target is a character string represented by a plurality of word IDs. The bit map of AND corresponds to, for example, the bit map indicating “refrigerator” of the AND result in FIG.
 検索対象受付部211は、検索対象を受け付ける。例えば、検索対象受付部211は、図5に示すような入力画像を表示し、検索条件や、検索対象の文字列を受け付ける。 The search target reception unit 211 receives a search target. For example, the search target receiving unit 211 displays an input image as shown in FIG. 5 and receives search conditions and a search target character string.
 第1の復元部212は、検索対象の文字列が示す単語IDに対応する2次元ハッシュ化インデックス222からハッシュ化ビットマップを抽出する。第1の復元部212は、抽出したハッシュ化ビットマップを展開し、展開した第1の復元ビットマップ225を記憶部220に格納する。検索対象が複数の単語IDで表される文字列で構成される場合には、第1の復元部212は、各単語IDに対応した複数の2次元ハッシュ化インデックス222からハッシュ化ビットマップを複数抽出する。そして、第1の復元部212は、各ハッシュ化ビットマップを展開し、展開した複数のビットマップを第1の復元ビットマップ225として、記憶部220に格納する。 The first restoration unit 212 extracts a hashed bitmap from the two-dimensional hashed index 222 corresponding to the word ID indicated by the search target character string. The first restoration unit 212 expands the extracted hashed bitmap, and stores the expanded first restoration bitmap 225 in the storage unit 220. When the search target is composed of character strings represented by a plurality of word IDs, the first restoration unit 212 generates a plurality of hashed bitmaps from a plurality of two-dimensional hashed indexes 222 corresponding to each word ID. Extract. Then, the first restoration unit 212 expands each hashed bitmap, and stores the plurality of expanded bitmaps in the storage unit 220 as the first restoration bitmap 225.
 第1の復元部212は、第1の復元ビットマップ225から、検索対象の文字列を全て含むファイルIDを抽出する。例えば、第1の復元部212は、第1の復元ビットマップ225が複数ある場合には、図6に示すように、第1の復元ビットマップ225のAND演算を行う。第1の復元部212は、AND結果のビット値が「1」であるファイルIDを抽出する。第1の復元部212は、抽出したファイルIDを第2の復元部213に出力する。 The first restoration unit 212 extracts a file ID including all search target character strings from the first restoration bitmap 225. For example, when there are a plurality of first restoration bitmaps 225, the first restoration unit 212 performs an AND operation on the first restoration bitmap 225 as shown in FIG. The first restoration unit 212 extracts a file ID whose bit value of the AND result is “1”. The first restoration unit 212 outputs the extracted file ID to the second restoration unit 213.
 第2の復元部213は、ファイルID、および検索対象の文字列が示す単語IDに対応する第1の3次元ハッシュ化インデックス223からハッシュ化ビットマップを抽出する。第2の復元部213は、抽出したハッシュ化ビットマップを展開し、展開した第2の復元ビットマップ226を記憶部220に格納する。検索対象が複数の単語IDで表される文字列で構成される場合には、第2の復元部213は、各単語IDに対応した複数の第1の3次元ハッシュ化インデックス223からハッシュ化ビットマップを複数抽出する。そして、第2の復元部213は、各ハッシュ化ビットマップを展開し、展開した複数のビットマップを第2の復元ビットマップ226として、記憶部220に格納する。 The second restoration unit 213 extracts the hashed bitmap from the first three-dimensional hashed index 223 corresponding to the file ID and the word ID indicated by the character string to be searched. The second restoration unit 213 expands the extracted hashed bitmap, and stores the expanded second restoration bitmap 226 in the storage unit 220. When the search target is composed of character strings represented by a plurality of word IDs, the second restoration unit 213 uses the hashed bits from the plurality of first three-dimensional hashed indexes 223 corresponding to the respective word IDs. Extract multiple maps. Then, the second restoration unit 213 expands each hashed bitmap, and stores the plurality of expanded bitmaps as the second restoration bitmap 226 in the storage unit 220.
 また、第2の復元部213は、ファイルID、および帳票の項目に対応する第2の3次元ハッシュ化インデックス224からハッシュ化ビットマップを抽出する。第2の復元部213は、抽出したハッシュ化ビットマップを展開し、展開した第3の復元ビットマップ227を記憶部220に格納する。 Also, the second restoration unit 213 extracts the hashed bitmap from the second three-dimensional hashed index 224 corresponding to the file ID and the form item. The second restoration unit 213 expands the extracted hashed bitmap, and stores the expanded third restoration bitmap 227 in the storage unit 220.
 検索処理部214は、検索対象の文字列を含むファイル、および検索対象の文字列の位置を検索する。例えば、検索処理部214は、第2の復元ビットマップ226に基づいて、ビット値が「1」を示すOffset(位置)を抽出する。検索処理部214は、検索対象が複数の単語IDで表される文字列で構成される場合には、ビット値が「1」を示すOffset(位置)を、第2の復元ビットマップ226ごとに、抽出する。そして、検索処理部214は、単語IDの並び、すなわち文字列の並びと、ビット値が「1」を示すOffset(位置)の並びとを比較する。すなわち、検索処理部214は、検索対象における文字列の位置関係と、ビット値が「1」となる単語IDの位置関係とが一致するか否か判別する。例えば、検索処理部214は、第2の復元ビットマップ226において、図7に示すように、AND演算とビットのシフトとを組み合わせて、検索対象の文字列の位置関係と、単語IDの位置関係とが一致するか否か判別する。検索処理部214は、検索対象の文字列の位置関係と、単語IDの位置関係とが一致する場合に、最終的なAND結果のビットマップを、絞込みビットマップ228として記憶部220に格納する。 The search processing unit 214 searches for a file including a character string to be searched and a position of the character string to be searched. For example, the search processing unit 214 extracts an Offset (position) whose bit value indicates “1” based on the second restoration bitmap 226. When the search target is composed of a character string represented by a plurality of word IDs, the search processing unit 214 sets an offset (position) whose bit value indicates “1” for each second restored bitmap 226. ,Extract. Then, the search processing unit 214 compares the sequence of word IDs, that is, the sequence of character strings with the sequence of Offset (position) where the bit value indicates “1”. That is, the search processing unit 214 determines whether or not the positional relationship of the character string in the search target matches the positional relationship of the word ID with the bit value “1”. For example, in the second restoration bitmap 226, the search processing unit 214 combines the AND operation and the bit shift as shown in FIG. Whether or not matches. When the positional relationship of the character string to be searched matches the positional relationship of the word ID, the search processing unit 214 stores the final AND result bitmap as the narrowed bitmap 228 in the storage unit 220.
 また、検索処理部214は、検索条件を満たす検索対象を検索する。例えば、検索処理部214は、図5の項目条件において、検索条件が選択されている場合には、第3の復元ビットマップ227、および絞込みビットマップ228に基づいて、検索条件を満たす検索対象を検索する。例えば、検索処理部214は、絞込みビットマップ228においてビット値が「1」となるOffset(位置)が、第3の復元ビットマップ227において検索条件の項目を示すOffset(位置)に含まれる場合に、検索条件を満たすと判別する。このようにして、検索処理部214は、検索条件を満たす検索対象を検索する。 Also, the search processing unit 214 searches for a search target that satisfies the search condition. For example, when the search condition is selected in the item condition of FIG. 5, the search processing unit 214 selects a search target that satisfies the search condition based on the third restoration bitmap 227 and the refinement bitmap 228. Search for. For example, the search processing unit 214 determines that the Offset (position) where the bit value is “1” in the narrowed bitmap 228 is included in the Offset (position) indicating the search condition item in the third restoration bitmap 227. It is determined that the search condition is satisfied. In this way, the search processing unit 214 searches for a search target that satisfies the search condition.
 検索結果出力部215は、検索処理部214の検索結果を出力する。検索結果出力部215は、検索条件を満たし、検索対象の文字列を含むファイルについて、例えば、ファイル名を出力する。 The search result output unit 215 outputs the search result of the search processing unit 214. The search result output unit 215 outputs, for example, a file name for a file that satisfies the search condition and includes a search target character string.
[実施例1に係る検索処理の処理手順]
 次に、実施例1に係る検索処理の処理手順について、図13を参照して説明する。図13は、実施例1に係る検索処理のフローチャートの一例を示す図である。
[Processing procedure of search processing according to embodiment 1]
Next, a processing procedure of search processing according to the first embodiment will be described with reference to FIG. FIG. 13 is a diagram illustrating an example of a flowchart of search processing according to the first embodiment.
 検索対象受付部211は、検索対象を受け付ける(S20)。 The search target reception unit 211 receives a search target (S20).
 第1の復元部212は、検索対象の文字列を表す単語IDに対応する2次元ハッシュ化インデックス222を読み出す(S21)。第1の復元部212は、読み出した2次元ハッシュ化インデックス222からハッシュ化ビットマップを抽出し、第1の復元ビットマップ225に展開する(S22)。第1の復元部212は、第1の復元ビットマップ225に基づいて、検索対象の文字列を表す単語IDを全て含むファイルIDを抽出する(S23)。 The first restoration unit 212 reads the two-dimensional hashed index 222 corresponding to the word ID representing the character string to be searched (S21). The first restoration unit 212 extracts a hashed bitmap from the read two-dimensional hashed index 222 and expands it into the first restored bitmap 225 (S22). Based on the first restoration bitmap 225, the first restoration unit 212 extracts a file ID including all the word IDs representing the character string to be searched (S23).
 第2の復元部213は、ファイルID、および単語IDに基づいて第1の3次元ハッシュ化インデックス223を読み出す(S24)。第2の復元部213は、第1の3次元ハッシュ化インデックス223からハッシュ化ビットマップを抽出し、第2の復元ビットマップ226に展開する(S25)。第2の復元部213は、ファイルID、および検索条件として選択された帳票の項目に基づいて第2の3次元ハッシュ化インデックス224を読み出す(S26)。第2の復元部213は、第2の3次元ハッシュ化インデックス224からハッシュ化ビットマップを抽出し、第3の復元ビットマップ227に展開する(S27)。なお、検索条件が選択されていない場合には、第2の復元部213は、例えば、第2の3次元ハッシュ化インデックス224からハッシュ化ビットマップを抽出せずに、処理を進める。 The second restoration unit 213 reads the first three-dimensional hashed index 223 based on the file ID and the word ID (S24). The second restoration unit 213 extracts the hashed bitmap from the first three-dimensional hashed index 223 and expands it into the second restored bitmap 226 (S25). The second restoration unit 213 reads the second three-dimensional hashed index 224 based on the file ID and the item of the form selected as the search condition (S26). The second restoration unit 213 extracts a hashed bitmap from the second three-dimensional hashed index 224 and expands it into the third restored bitmap 227 (S27). Note that when the search condition is not selected, the second restoration unit 213 proceeds with the process without extracting the hashed bitmap from the second three-dimensional hashed index 224, for example.
 検索処理部214は、第2の復元ビットマップ226に検索対象の文字列が全て含まれるか否か判別する(S28)。第2の復元ビットマップ226に検索対象の文字列が全て含まれている場合(S28肯定)、検索処理部214は、検索条件を満たすか否か判別する(S29)。なお、検索条件が選択されていない場合には、検索処理部214は、例えば、検索条件を満たすか否か判別せずに、処理を進める。 The search processing unit 214 determines whether or not all the character strings to be searched are included in the second restoration bitmap 226 (S28). When the second restoration bitmap 226 includes all the search target character strings (Yes in S28), the search processing unit 214 determines whether or not the search condition is satisfied (S29). If no search condition is selected, the search processing unit 214 proceeds with the process without determining whether the search condition is satisfied, for example.
 検索条件を満たす場合(S29肯定)、検索結果出力部215は、検索条件を満たし、検索対象の文字列を含むファイルについて、例えば、ファイル名を出力する(S30)。一方、第2の復元ビットマップ226に検索対象の文字列の何れかが含まれていない場合(S28否定)、検索結果出力部215は、検索対象の文字列を含むファイルがない旨を検索結果として出力する(S31)。また、検索条件を満たさない場合(S29否定)、検索結果出力部215は、検索条件を満たすファイルがない旨を検索結果として出力する(S32)。 If the search condition is satisfied (Yes in S29), the search result output unit 215 outputs, for example, a file name for the file that satisfies the search condition and includes the search target character string (S30). On the other hand, when any of the search target character strings is not included in the second restoration bitmap 226 (No in S28), the search result output unit 215 indicates that there is no file including the search target character strings. (S31). When the search condition is not satisfied (No at S29), the search result output unit 215 outputs that the search condition does not exist as a search result (S32).
[実施例の効果]
 帳票出力装置100は、帳票データから帳票出力形式データを生成する。帳票出力装置100は、文字列に対するインデックス情報であって、帳票の項目と、帳票出力形式データに含まれる帳票の項目それぞれに対応したデータ相互の帳票データにおける位置関係とを特定可能な位置情報を含むインデックス情報を生成する。帳票出力装置100は、インデックス情報、および帳票出力形式データを含む出力ファイルを出力する。これにより、例えば、検索装置200は、インデックス情報を参照することで、検索対象の有無を速やかに判別することができる。
[Effect of Example]
The form output device 100 generates form output format data from the form data. The form output device 100 is index information for a character string, and includes position information that can specify a form item and a positional relationship in the form data between data corresponding to each form item included in the form output format data. Generate index information including. The form output device 100 outputs an output file including index information and form output format data. Thereby, for example, the search device 200 can quickly determine whether there is a search target by referring to the index information.
 インデックス情報は、帳票の項目と、帳票出力形式データに含まれるデータ相互の位置関係とを特定可能な位置情報を含んでいる。これにより、例えば、検索装置200は、インデックス情報を参照することで、例えば、検索対象の項目に該当するか否かを速やかに判別することができる。 The index information includes position information that can identify the item of the form and the positional relationship between the data included in the form output format data. Thereby, for example, the search device 200 can quickly determine whether or not the item corresponds to, for example, a search target item by referring to the index information.
 出力ファイルは、拡張領域に、帳票出力形式データが符号化された符号化データ、およびインデックス情報を含む。例えば、出力ファイルがPDFファイルである場合、PDFの拡張領域に、符号化データ、およびインデックス情報が含まれる。これにより、例えば、検索装置200は、帳票出力形式データが符号化された状態で、検索を行うことができ、検索対象の項目に該当するか否かを速やかに判別することができる。 The output file includes encoded data obtained by encoding the form output format data and index information in the extended area. For example, when the output file is a PDF file, encoded data and index information are included in the PDF extension area. Thereby, for example, the search device 200 can perform a search in a state where the form output format data is encoded, and can quickly determine whether or not the item corresponds to a search target item.
 なお、例えば、PDFファイルに属性情報や、文字列などの位置情報などをメタデータとして埋め込むことも考えられる。しかし、この場合、ファイルサイズが大きくなる。また、PDFファイルを生成する時間が長くなる。これに対し、帳票出力装置100は、例えば、PDFファイルの拡張領域に、帳票出力形式データが符号化された符号化データ、およびインデックス情報を埋め込む。これにより、帳票出力装置100は、出力ファイルのファイルサイズを小さくすることができる。また、帳票出力装置100は、例えば、PDFファイルを生成する時間を短くすることができる。 Note that, for example, it may be possible to embed attribute information or position information such as a character string as metadata in a PDF file. In this case, however, the file size increases. In addition, the time for generating the PDF file becomes longer. On the other hand, the form output device 100 embeds, for example, encoded data obtained by encoding form output format data and index information in the extension area of the PDF file. Thereby, the form output device 100 can reduce the file size of the output file. Further, the form output device 100 can shorten the time for generating a PDF file, for example.
 また、ファイルサイズを小さくするために、例えば、帳票データをZip形式で圧縮することも考えられる。しかし、Zip形式で圧縮すると、圧縮された帳票データを使用する場合に、圧縮ファイルを全て伸張する必要がある。そのため、全ての伸張が終了するまで検索ができず、検索時間が長くなる。これに対し、帳票出力装置100は、符号化データとは別に、インデックス情報を有する。これにより、例えば、検索装置200は、インデックス情報を参照することで、検索対象の項目に該当するか否かを速やかに判別することができる。そのため、検索時間を短くすることができる。 In order to reduce the file size, for example, it is possible to compress the form data in the Zip format. However, if compression is performed in the Zip format, it is necessary to decompress all the compressed files when using compressed form data. Therefore, the search cannot be performed until all decompression is completed, and the search time becomes long. On the other hand, the form output device 100 has index information separately from the encoded data. Thereby, for example, the search device 200 can quickly determine whether or not the item corresponds to the search target item by referring to the index information. Therefore, the search time can be shortened.
 符号化データは、帳票出力形式データが帳票の項目ごとに、符号化されたデータである。これにより、帳票出力装置100は、高い圧縮率で圧縮した出力ファイルを作成することができ、出力ファイルのサイズを小さくすることができる。また、例えば、検索装置200は、符号化データを帳票の項目ごとに、伸張することができ、必要な部分のみの参照、または取り出しを行うことができる。 Encoded data is data in which the form output format data is encoded for each item of the form. Thereby, the form output apparatus 100 can create an output file compressed at a high compression rate, and can reduce the size of the output file. Further, for example, the search device 200 can expand the encoded data for each item of the form, and can refer to or extract only a necessary part.
 インデックス情報である第1の3次元ハッシュ化インデックス123、223は、ファイルIDと、単語IDと、単語IDの位置情報とを軸とするビットマップ型転置インデックス情報である。これにより、帳票出力装置100は、例えば、PDFファイルに属性情報や、文字列などの位置情報などをメタデータとして埋め込む場合と比較して、出力ファイルのサイズを小さくすることができる。また、例えば、検索装置200は、精度の良い検索を速やかに行うことができる。    The first three-dimensional hashed indexes 123 and 223 that are index information are bitmap-type transposed index information with the file ID, the word ID, and the position information of the word ID as axes. As a result, the form output device 100 can reduce the size of the output file as compared to, for example, embedding attribute information or position information such as a character string as metadata in a PDF file. Further, for example, the search device 200 can quickly perform a search with high accuracy. *
 次に、実施例2について説明する。実施例2では、異なる項目の中に同じ文字列が含まれる場合について説明する。 Next, Example 2 will be described. In the second embodiment, a case where the same character string is included in different items will be described.
[実施例2に係る帳票出力形式データとビットマップ型インデックスの一例]
 図14は、実施例2に係る帳票出力形式データと、ビットマップ型インデックスとを示す図である。図14の帳票出力形式データは、帳票の項目として、「支店名」、「住所」、「性別」などを有している。また、例えば、「支店名」の項目には、「鎌倉支店」が含まれる。また、例えば、「住所」の項目には、「鎌倉市」が含まれる。また、例えば、「性別」の項目には、「男」が含まれる。なお、実施例2における符号化の手順、ハッシュ化の手順などは、実施例1と同じであり、実施例2での説明は省略する。また、以降、各文字列については、単語IDに符号化する前の各文字列を用いて説明する。
[Example of form output format data and bitmap type index according to Embodiment 2]
FIG. 14 is a diagram illustrating the form output format data and the bitmap index according to the second embodiment. The form output format data in FIG. 14 has “branch name”, “address”, “gender”, and the like as items of the form. For example, the item “branch name” includes “Kamakura branch”. Further, for example, the item “address” includes “Kamakura city”. For example, the item “sex” includes “male”. Note that the encoding procedure, hashing procedure, and the like in the second embodiment are the same as those in the first embodiment, and the description in the second embodiment is omitted. Further, hereinafter, each character string will be described using each character string before being encoded into a word ID.
 帳票出力装置が生成したビットマップ型インデックスには、異なる帳票の項目、例えば、「支店名」、および「住所」に、文字列「鎌」、および「倉」が含まれる。そのため、「鎌」におけるビットマップでは、0ビット目、および4ビット目のビット値が「1」に設定される。また、「倉」におけるビットマップでは、1ビット目、および5ビット目のビット値が「1」に設定される。 The bitmap type index generated by the form output device includes different form items, for example, “branch name” and “address”, and the character strings “kama” and “kura”. Therefore, in the bit map of “kick”, the bit values of the 0th bit and the 4th bit are set to “1”. In the bitmap in “kura”, the bit values of the first bit and the fifth bit are set to “1”.
[実施例2の検索処理の一例]
 図15は、検索対象を入力した画像の一例を示す図である。ここでは、検索条件として「住所」が選択され、検索対象として「鎌倉」が入力されている。
[Example of search processing in Embodiment 2]
FIG. 15 is a diagram illustrating an example of an image in which a search target is input. Here, “address” is selected as the search condition, and “Kamakura” is input as the search target.
 検索装置は、検索対象の入力を受け付けると、図16に示すように、検索条件である「住所」の項目のビットマップにマスクビットを設定する。図16は、実施例2に係る検索処理の一例を示す図である。帳票の項目「住所」のビットマップにマスクビットが設定されると、4ビット目~6ビット目のビット値が「1」に設定されたビットマップが生成される。 When the search device receives the input of the search target, the search device sets a mask bit in the bitmap of the item “address” as the search condition, as shown in FIG. FIG. 16 is a diagram illustrating an example of search processing according to the second embodiment. When the mask bit is set in the bit map of the item “address” of the form, a bit map in which the bit values of the fourth to sixth bits are set to “1” is generated.
 検索装置は、マスクビットのビットマップと、「鎌倉」の検索結果のビットマップ(絞込みビットマップ228)とをAND演算する。なお、「鎌倉」の検索処理は、例えば、図7を用いて説明した検索処理と同じであり説明は省略する。「鎌倉」は、帳票の項目「支店名」と、帳票の項目「住所」とに存在するため、「鎌倉」の検索結果のビットマップでは、1ビット目、および5ビット目のビット値が「1」に設定されている。しかし、マスクビットのビットマップでは、1ビット目は、帳票の項目「住所」に該当しないため、ビット値が「0」に設定されている。従って、AND演算を行うと、AND結果のビットマップでは、1ビット目のビット値は「0」であり、5ビット目のビット値のみが「1」となる。このように、検索装置は、AND演算を行うことで、検索条件を満たす検索対象を絞り込む。つまり、帳票の複数の項目に同じ文字列が含まれる場合でも、検索装置は、検索条件に応じて検索対象の位置を絞り込むことができる。 The search device performs an AND operation on the bitmap of the mask bit and the bitmap of the search result of “Kamakura” (the narrowed-down bitmap 228). The search process for “Kamakura” is the same as the search process described with reference to FIG. Since “Kamakura” exists in the item “branch name” of the form and the item “address” of the form, the bit values of the first bit and the fifth bit in the bitmap of the search result of “Kamakura” are “ 1 ”is set. However, in the bit map of the mask bit, since the first bit does not correspond to the item “address” of the form, the bit value is set to “0”. Therefore, when an AND operation is performed, the bit value of the first bit is “0” and only the bit value of the fifth bit is “1” in the bit map of the AND result. Thus, the search device narrows down search targets that satisfy the search condition by performing an AND operation. That is, even when the same character string is included in a plurality of items of the form, the search device can narrow down the position of the search target according to the search condition.
 次に、実施例3について説明する。実施例3では、異なる項目の中に同じ文字列が含まれ、レコード単位で検索を行う場合について説明する。 Next, Example 3 will be described. In the third embodiment, a case where the same character string is included in different items and a search is performed in units of records will be described.
[実施例3に係る帳票出力形式データとビットマップ型インデックスの一例]
 図17は、実施例3に係る帳票出力形式データと、ビットマップ型インデックスとを示す図である。図17の帳票出力形式データは、帳票の項目として、「支店名」、「住所」、「性別」を有している。なお、帳票出力形式データは、他の項目を有しても良い。また、図17の帳票出力形式データには、複数のレコードが含まれ、例えば、レコード1、およびレコード2には、「性別」の項目のみが異なるデータが含まれる。なお、実施例3における符号化の手順、ハッシュ化の手順などは、実施例1と同じであり、実施例3での説明は省略する。また、以降、各文字列については、単語IDに符号化する前の各文字列を用いて説明する。
[Example of form output format data and bitmap index according to Embodiment 3]
FIG. 17 is a diagram illustrating the form output format data and the bitmap index according to the third embodiment. The form output format data in FIG. 17 has “branch name”, “address”, and “gender” as the items of the form. The form output format data may have other items. In addition, the form output format data of FIG. 17 includes a plurality of records. For example, the records 1 and 2 include data different only in the item of “sex”. Note that the encoding procedure, hashing procedure, and the like in the third embodiment are the same as those in the first embodiment, and the description in the third embodiment is omitted. Further, hereinafter, each character string will be described using each character string before being encoded into a word ID.
 帳票出力装置が生成したビットマップ型インデックスには、異なる帳票の項目、および異なるレコードに、文字列「鎌」、および「倉」が含まれる。そのため、「鎌」におけるビットマップでは、0ビット目、4ビット目、8ビット目、および12ビット目のビット値が「1」に設定される。また、「倉」におけるビットマップでは、1ビット目、5ビット目、9ビット目、および13ビット目のビット値が「1」に設定される。また、レコードの区切りを示すビットマップでは、0ビット目、8ビット目、および16ビット目に「1」が設定される。なお、レコードの区切りを示すビットマップでは、レコードの最初の文字列に対応するビットのビット値が「1」に設定される。レコードの区切りを示すビットマップは、例えば、帳票の項目についてのビットマップと同様に、3次元ビットマップ型インデックスとして生成される。その手順についての説明は省略する。 The bitmap type index generated by the form output device includes character strings “Kama” and “kura” in different form items and different records. For this reason, in the bit map of “kick”, the bit values of the 0th bit, the 4th bit, the 8th bit, and the 12th bit are set to “1”. In the bitmap in “Kura”, the bit values of the first bit, the fifth bit, the ninth bit, and the thirteenth bit are set to “1”. In the bitmap indicating the record delimiters, “1” is set in the 0th, 8th, and 16th bits. In the bitmap indicating the record delimiter, the bit value of the bit corresponding to the first character string of the record is set to “1”. The bitmap indicating the record delimiter is generated as a three-dimensional bitmap index, for example, similarly to the bitmap for the form item. A description of the procedure is omitted.
[実施例3の検索処理の一例]
 図18は、検索対象を入力した画像の一例を示す図である。ここでは、レコード単位で検索が選択されている。また、検索条件1として「住所」が設定され、検索対象として「鎌倉」が入力されている。さらに検索条件2として「すべて」が設定され、検索対象として「女」が入力されている。
[Example of search processing in Embodiment 3]
FIG. 18 is a diagram illustrating an example of an image in which a search target is input. Here, search is selected in units of records. In addition, “address” is set as the search condition 1, and “Kamakura” is input as the search target. Furthermore, “all” is set as the search condition 2 and “female” is input as the search target.
 検索装置は、検索対象を受け付けると、図19に示すように、検索条件である「住所」の項目のビットマップにマスクビットを設定する。図19は、実施例3に係る検索処理の一例を示す図である。帳票の項目「住所」のビットマップにマスクビットが設定されると、4~6ビット目、および12~14ビット目のビット値が「1」に設定されたビットマップが生成される。 When the search device accepts the search target, the search device sets a mask bit in the bitmap of the item “address” as the search condition, as shown in FIG. FIG. 19 is a diagram illustrating an example of search processing according to the third embodiment. When the mask bit is set in the bit map of the item “address” of the form, a bit map in which the bit values of the 4th to 6th bits and the 12th to 14th bits are set to “1” is generated.
 検索装置は、マスクビットのビットマップと、「鎌倉」の検索結果のビットマップ(絞込みビットマップ228)とをAND演算する。AND演算を行うと、AND結果のビットマップでは、5ビット目、および13ビット目のビット値が「1」となる。これは、レコード1の帳票の項目「住所」と、レコード2の帳票の項目「住所」とに「鎌倉」が含まれることを表している。 The search device performs an AND operation on the bitmap of the mask bit and the bitmap of the search result of “Kamakura” (the narrowed-down bitmap 228). When the AND operation is performed, the bit values of the 5th and 13th bits are “1” in the AND result bitmap. This indicates that “Kamakura” is included in the item “address” of the record 1 record and the item “address” of the record 2 record.
 検索装置は、検索条件が「すべて」である場合には、例えば、マスクビットを設定せずに、検索対象の「女」の検索結果のビットマップをそのまま、AND結果のビットマップとして出力する。検索対象の「女」のAND結果のビットマップでは、15ビット目のビット値が「1」に設定されている。なお、検索装置は、検索条件が「すべて」である場合には、帳票の項目の全てのビットマップにマスクビットを設定して、AND演算を行ってもよい。 When the search condition is “all”, for example, the search device outputs the bit map of the search result “female” as the AND result bit map as it is without setting the mask bit. In the bit map of the AND result of “woman” to be searched, the bit value of the 15th bit is set to “1”. Note that when the search condition is “all”, the search device may perform an AND operation by setting mask bits in all the bitmaps of the form items.
 検索装置は、AND結果のビットマップと、検索対象の「女」のAND結果のビットマップと、レコードの区切り位置を示すビットマップとに基づいて、検索条件を満たすレコードを判別する。検索装置は、レコードの区切り位置を示すビットマップにおいて、レコード1を示す0ビット目~7ビット目に、AND結果のビットマップ、および検索対象の「女」のAND結果のビットマップでビット値が「1」に設定されているか否か判別する。また、検索装置は、レコードの区切り位置を示すビットマップにおいて、レコード2を示す8ビット目~15ビット目に、AND結果のビットマップ、および検索対象の「女」のAND結果のビットマップでビット値が「1」に設定されているか否か判別する。ここでは、0ビット目~7ビット目には、検索対象の「女」のAND結果のビットマップでビット値が「1」に設定されていない。そのため、検索装置は、レコード1は、検索条件を満たさないと判別する。また、8ビット目~15ビット目には、検索対象の「女」のAND結果のビットマップでビット値が「1」に設定されており、AND結果のビットマップのビット値が「1」に設定されている。そのため、検索装置は、レコード2は検索条件を満たすと判別する。検索装置は、検索条件を満たし、検索対象の「鎌倉」、および「女」を含むレコード2を絞り込み出力する。つまり、複数のレコード、および帳票の複数の項目に同じ文字列が含まれる場合でも、検索装置は、検索条件に応じてレコード単位で検索対象を絞り込むことができる。 The search device determines a record satisfying the search condition based on the AND result bitmap, the AND result bitmap of the “female” to be searched, and the bitmap indicating the record delimiter position. In the bit map indicating the record delimiter position, the search device sets the bit value in the bit map of the AND result and the bit map of the AND result of the “female” to be searched to the 0th to 7th bits indicating the record 1. It is determined whether or not “1” is set. In addition, in the bit map indicating the record delimitation position, the search device uses the bit of the AND result bit map and the bit map of the “female” AND result bit map indicating the record 2 in the 8th to 15th bits. It is determined whether or not the value is set to “1”. Here, in the 0th bit to the 7th bit, the bit value is not set to “1” in the bit map of the AND result of “woman” to be searched. Therefore, the search device determines that record 1 does not satisfy the search condition. In the 8th to 15th bits, the bit value of the AND result bitmap of the search target “woman” is set to “1”, and the bit value of the AND result bitmap is set to “1”. Is set. Therefore, the search device determines that record 2 satisfies the search condition. The search device narrows down and outputs records 2 that satisfy the search condition and include “Kamakura” and “Woman” to be searched. That is, even when the same character string is included in a plurality of records and a plurality of items of the form, the search device can narrow down the search target in units of records according to the search conditions.
 さて、これまで開示の装置に関する実施例について説明したが、開示の技術は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。 Now, although the embodiments related to the disclosed apparatus have been described so far, the disclosed technology may be implemented in various different forms other than the above-described embodiments. Therefore, another embodiment included in the present invention will be described below.
 実施例に係る検索装置200は、検索対象を含むファイルなどが複数存在する場合には、例えば、ファイルごとに、検索対象の数をカウントし、検索対象を多く含むほどファイルを優先的に出力しても良い。例えば、検索装置200は、ファイルを、検索対象を多く含む順に出力する。これにより、検索対象を多く含むファイルなどを速やかに発見することができる。 When there are a plurality of files including search objects, for example, the search device 200 according to the embodiment counts the number of search objects for each file, and outputs a file preferentially as the number of search objects is increased. May be. For example, the search device 200 outputs files in the order that includes many search targets. As a result, it is possible to quickly find a file containing a large number of search targets.
 また、実施例に係る帳票出力装置100は、32ビットレジスタを想定し、29と31のハッシュ値(底)を基に、各ビットマップをハッシュ化するとして説明した。実施例では、1つのビットマップを44ビットとして説明した。しかしながら、29および31のハッシュ値(底)は、一例であって、これに限定されない。ビットマップのビット数も、一例であって、これに限定されない。2つのハッシュ値(底)は、複数のファイル内のそれぞれの文字列の数に応じて決定されれば良い。例えば、文字列の数が10000であるとすると、一方の底で割った余りと他方の底で割った余りとから表わされる2次元の行列が約10000となるように、2つの底が選択される。2つの底は、隣接した素数であれば良い。選択される2つの素数は、行列の数が10000の場合、一例として、97と101である。つまり、最小公倍数が約10000となる2次元のマトリックス空間の中で、ある文字列について一方のハッシュおよび他方のハッシュで求められる余りの組は、他の文字列について求められる余りの組と衝突しない(重複しない)であろうという推測に基づくものである。 In addition, the form output apparatus 100 according to the embodiment has been described on the assumption that each bit map is hashed based on the hash values (bottom) of 29 and 31 assuming a 32-bit register. In the embodiment, one bit map is described as 44 bits. However, the hash values (bottom) of 29 and 31 are examples, and are not limited to this. The number of bits in the bitmap is also an example and is not limited to this. The two hash values (bases) may be determined according to the number of character strings in the plurality of files. For example, if the number of character strings is 10,000, the two bases are selected so that the two-dimensional matrix represented by the remainder divided by one base and the remainder divided by the other base is about 10,000. The The two bases may be adjacent prime numbers. Two prime numbers to be selected are 97 and 101 as an example when the number of matrices is 10,000. In other words, in a two-dimensional matrix space in which the least common multiple is about 10,000, a surplus set obtained by one hash and the other hash for a character string does not collide with a surplus set obtained for another character string. It is based on the assumption that it will be (non-overlapping).
 また、実施例では、帳票出力装置100が、単語IDに対応するビットマップおよび単語IDおよびファイルIDに対応するビットマップそれぞれについて、2つのハッシュ値(底)に基づいたそれぞれのハッシュ化ビットマップを生成すると説明した。帳票出力装置100は、ハッシュ化ビットマップを生成する際、ハッシュの衝突(ハッシュノイズ)を検知する場合がある。例えば、超高頻度の文字列は、複数のファイルに存在するため、超高頻度の文字列に対応するビットマップの複数位置のビット値が「1」に設定される。すると、ビットマップがハッシュ化されると、ハッシュ化ビットマップの同じ位置に「1」が重複して設定されることがある。超高頻度の文字列の一例として、「the」や「on」が挙げられる。そこで、帳票出力装置100は、ハッシュノイズに対して、ハッシュの衝突監視を行い、0/1比率の測定やビットマップの分割により、ハッシュノイズの低減化を行えば良い。例えば、帳票出力装置100は、ハッシュ化ビットマップのいずれか1つで連続して衝突が発生した場合に、衝突が発生したハッシュ化ビットマップに対応するビットマップの存否情報を用いて存否(1/0)の比率を集計する。帳票出力装置100は、「1」の比率が閾値より大きい場合には、衝突が発生したハッシュ化ビットマップに対応するビットマップを分割する。一例として、帳票出力装置100は、衝突が発生したハッシュ化ビットマップに対応するビットマップの偶数番目の位置のビットを抽出し、新たにビットマップを生成する。加えて、帳票出力装置100は、衝突が発生したハッシュ化ビットマップに対応するビットマップの奇数番目の位置のビットを抽出し、新たにビットマップを生成する。そして、帳票出力装置100は、分割した新たなビットマップを、分割先として例えば低頻度単語の領域に格納する。帳票出力装置100は、2つのハッシュ化ビットマップのいずれか1つに対し分割先を設定する。そして、帳票出力装置100は、ビットマップを分割後に、分割先の各ビットマップに対して、2つのハッシュ値(底)に基づいたそれぞれのハッシュ化ビットマップを生成する。これにより、帳票出力装置100は、ハッシュ化ビットマップのデータが衝突する場合であっても、ハッシュ化前のビットマップの偶数番目のデータと奇数番目のデータとを分割してそれぞれハッシュ化することで、データの衝突を回避することが可能となる。 Further, in the embodiment, the form output device 100 uses each hashed bitmap based on two hash values (bottom) for each of the bitmap corresponding to the word ID and the bitmap corresponding to the word ID and the file ID. It explained that it generates. The form output device 100 may detect a hash collision (hash noise) when generating a hashed bitmap. For example, since an extremely high-frequency character string exists in a plurality of files, bit values at a plurality of positions in a bitmap corresponding to the extremely high-frequency character string are set to “1”. Then, when the bitmap is hashed, “1” may be set redundantly at the same position in the hashed bitmap. Examples of the extremely high frequency character string include “the” and “on”. Therefore, the form output apparatus 100 may perform hash collision reduction with respect to hash noise, and reduce hash noise by measuring a 0/1 ratio or dividing a bitmap. For example, the form output apparatus 100 uses the presence / absence information of the bitmap corresponding to the hashed bitmap in which the collision has occurred when any one of the hashed bitmaps continuously causes a collision (1 / 0) ratios. If the ratio of “1” is greater than the threshold, the form output device 100 divides the bitmap corresponding to the hashed bitmap in which the collision has occurred. As an example, the form output device 100 extracts bits at even-numbered positions in a bitmap corresponding to a hashed bitmap in which a collision has occurred, and newly generates a bitmap. In addition, the form output apparatus 100 extracts bits at odd-numbered positions in the bitmap corresponding to the hashed bitmap in which the collision has occurred, and newly generates a bitmap. Then, the form output device 100 stores the divided new bitmap as, for example, a low-frequency word area as a division destination. The form output device 100 sets a division destination for one of the two hashed bitmaps. Then, the form output device 100 generates a hashed bitmap based on the two hash values (bottom) for each divided bitmap after dividing the bitmap. Thereby, even if the data of the hashed bitmaps collide, the form output device 100 divides the even-numbered data and the odd-numbered data of the bitmap before hashing and performs hashing respectively. Thus, data collision can be avoided.
 また、実施例に係る帳票出力装置100は、隣接した複数のハッシュ値(底)を基に、例えば、2次元(単語IDの軸とファイルIDの軸)、および3次元(単語IDの軸とファイルIDの軸と文字列の位置の軸、帳票の項目の軸とファイルIDと帳票の項目の位置の軸)にハッシュ化を適用したハッシュ化インデックスを生成すると説明した。しかしながら、帳票出力装置100は、ファイルの軸に代えてブロックの軸としても良い。すなわち、単語IDの存否情報は、ブロック単位であるとしても良い。 Further, the form output device 100 according to the embodiment, for example, based on a plurality of adjacent hash values (bottom), for example, two-dimensional (word ID axis and file ID axis) and three-dimensional (word ID axis) It has been explained that a hashed index is generated by applying hashing to the file ID axis and the character string position axis, the form item axis, and the file ID and form item position axis. However, the form output device 100 may use a block axis instead of the file axis. That is, the presence / absence information of the word ID may be in units of blocks.
 また、実施例に係る帳票出力装置100は、検索対象の文字列が日本語である場合、1文字ごとに、単語IDを設定し、ビットマップ型インデックスを生成した。しかしながら、帳票出力装置100は、単語ごとに、単語IDを設定し、ビットマップ型インデックスを生成しても良い。 In addition, when the search target character string is Japanese, the form output device 100 according to the example sets a word ID for each character and generates a bitmap index. However, the form output device 100 may set a word ID for each word and generate a bitmap index.
 また、実施例に示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。 In addition, the processing procedure, control procedure, specific name, information including various data and parameters shown in the embodiment can be arbitrarily changed unless otherwise specified.
[ハードウェア構成]
 下記に、上述の実施形態に用いられるハードウェア、およびソフトウェアについて説明する。図20は、コンピュータ1のハードウェア構成例を示す図である。コンピュータ1は、例えば、プロセッサ301、RAM(Random Access Memory)302、ROM(Read Only Memory)303、ドライブ装置304、記憶媒体305、入力インターフェース(I/F)306、入力デバイス307、出力インターフェース(I/F)308、出力デバイス309、通信インターフェース(I/F)310、SAN(Storage Area Network)インターフェース(I/F)311、およびバス312などを含む。それぞれのハードウェアはバス312を介して接続されている。
[Hardware configuration]
Hereinafter, hardware and software used in the above-described embodiment will be described. FIG. 20 is a diagram illustrating a hardware configuration example of the computer 1. The computer 1 includes, for example, a processor 301, a RAM (Random Access Memory) 302, a ROM (Read Only Memory) 303, a drive device 304, a storage medium 305, an input interface (I / F) 306, an input device 307, an output interface (I / F) 308, output device 309, communication interface (I / F) 310, SAN (Storage Area Network) interface (I / F) 311, and bus 312. Each piece of hardware is connected via a bus 312.
 RAM302は読み書き可能なメモリ装置であって、例えば、SRAM(Static RAM)やDRAM(Dynamic RAM)などの半導体メモリ、またはRAMでなくてもフラッシュメモリなどが用いられる。ROM303は、PROM(Programmable ROM)なども含む。ドライブ装置304は、記憶媒体305に記録された情報の読み出しか書き込みかの少なくともいずれか一方を行なう装置である。記憶媒体305は、ドライブ装置304によって書き込まれた情報を記憶する。記憶媒体305は、例えば、ハードディスク、SSD(Solid State Drive)などのフラッシュメモリ、CD(Compact Disc)、DVD(Digital Versatile Disc)、ブルーレイディスクなどの記憶媒体である。また、例えば、コンピュータ1は、複数種類の記憶媒体それぞれについて、ドライブ装置304、および記憶媒体305を設ける。 The RAM 302 is a readable / writable memory device, and for example, a semiconductor memory such as SRAM (Static RAM) or DRAM (Dynamic RAM), or a flash memory even if not a RAM is used. The ROM 303 includes a PROM (Programmable ROM). The drive device 304 is a device that performs at least one of reading and writing of information recorded in the storage medium 305. The storage medium 305 stores information written by the drive device 304. The storage medium 305 is a storage medium such as a hard disk, a flash memory such as an SSD (Solid State Drive), a CD (Compact Disc), a DVD (Digital Versatile Disc), or a Blu-ray disc. Further, for example, the computer 1 is provided with a drive device 304 and a storage medium 305 for each of a plurality of types of storage media.
 入力インターフェース306は、入力デバイス307と接続されており、入力デバイス307から受信した入力信号をプロセッサ301に伝達する回路である。出力インターフェース308は、出力デバイス309と接続されており、出力デバイス309に、プロセッサ301の指示に応じた出力を実行させる回路である。通信インターフェース310はネットワーク3を介した通信の制御を行なう回路である。通信インターフェース310は、例えばネットワークインターフェースカード(NIC)などである。SANインターフェース311は、ストレージエリアネットワークによりコンピュータ1と接続された記憶装置との通信の制御を行なう回路である。SANインターフェース311は、例えばホストバスアダプタ(HBA)などである。 The input interface 306 is connected to the input device 307 and is a circuit that transmits an input signal received from the input device 307 to the processor 301. The output interface 308 is a circuit that is connected to the output device 309 and causes the output device 309 to execute an output in accordance with an instruction from the processor 301. The communication interface 310 is a circuit that controls communication via the network 3. The communication interface 310 is, for example, a network interface card (NIC). The SAN interface 311 is a circuit that controls communication with a storage device connected to the computer 1 via a storage area network. The SAN interface 311 is, for example, a host bus adapter (HBA).
 入力デバイス307は、操作に応じて入力信号を送信する装置である。入力信号は、例えば、キーボードやコンピュータ1の本体に取り付けられたボタンなどのキー装置や、マウスやタッチパネルなどのポインティングデバイスである。出力デバイス309は、コンピュータ1の制御に応じて情報を出力する装置である。出力デバイス309は、例えば、ディスプレイなどの画像出力装置(表示デバイス)や、スピーカーなどの音声出力装置などである。また、例えば、タッチスクリーンなどの入出力装置が、入力デバイス307、および出力デバイス309として用いられる。また、入力デバイス307、および出力デバイス309は、コンピュータ1と一体になっていても良いし、コンピュータ1に含まれず、例えば、コンピュータ1に外部から接続する装置であっても良い。 The input device 307 is a device that transmits an input signal according to an operation. The input signal is, for example, a key device such as a keyboard or a button attached to the main body of the computer 1, or a pointing device such as a mouse or a touch panel. The output device 309 is a device that outputs information according to the control of the computer 1. The output device 309 is, for example, an image output device (display device) such as a display, or an audio output device such as a speaker. For example, an input / output device such as a touch screen is used as the input device 307 and the output device 309. The input device 307 and the output device 309 may be integrated with the computer 1 or may be an apparatus that is not included in the computer 1 and is connected to the computer 1 from the outside, for example.
 例えば、プロセッサ301は、ROM303や記憶媒体305に記憶されたプログラムをRAM302に読み出し、読み出されたプログラムの手順に従って制御部110、210の処理を行なう。その際にRAM302はプロセッサ301のワークエリアとして用いられる。記憶部120、220の機能は、ROM303および記憶媒体305がプログラムファイル(後述のアプリケーションプログラムAP24、ミドルウェアMW23およびOS22など)やデータファイル(例えば、符号化辞書121、221、2次元ハッシュ化インデックス122、222、第1の3次元ハッシュ化インデックス123、223など)を記憶し、RAM302がプロセッサ301のワークエリアとして用いられることによって実現される。プロセッサ301が読み出すプログラムについては、図21を用いて説明する。 For example, the processor 301 reads a program stored in the ROM 303 or the storage medium 305 to the RAM 302 and performs the processing of the control units 110 and 210 according to the read program procedure. At that time, the RAM 302 is used as a work area of the processor 301. The functions of the storage units 120 and 220 are such that the ROM 303 and the storage medium 305 are program files (application program AP24, middleware MW23 and OS22 described later) and data files (for example, encoding dictionaries 121 and 221, two-dimensional hashed index 122, 222, the first three-dimensional hashed indexes 123, 223, etc.), and the RAM 302 is used as a work area of the processor 301. A program read by the processor 301 will be described with reference to FIG.
 図21は、コンピュータで動作するプログラムの構成例を示す図である。コンピュータ1において、図21に示すハードウェア群HW21(301~312)の制御を行なうOS(オペレーティング・システム)22が動作する。OS22に従った手順でプロセッサ301が動作して、ハードウェア群HW21の制御・管理が行なわれることにより、アプリケーションプログラムAP24やミドルウェアMW23に従った処理がハードウェア群HW21で実行される。さらに、コンピュータ1において、ミドルウェアMW23またはアプリケーションプログラムAP24が、RAM302に読み出されてプロセッサ301により実行される。 FIG. 21 is a diagram illustrating a configuration example of a program operating on a computer. In the computer 1, an OS (operating system) 22 for controlling the hardware group HW21 (301 to 312) shown in FIG. The processor 301 operates according to the procedure according to the OS 22 to control and manage the hardware group HW21, whereby the processing according to the application program AP24 and the middleware MW23 is executed in the hardware group HW21. Further, in the computer 1, the middleware MW 23 or the application program AP 24 is read into the RAM 302 and executed by the processor 301.
 プロセッサ301が、帳票生成機能が呼び出された場合に、ミドルウェアMW23またはアプリケーションプログラムAP24の少なくとも一部に基づく処理を行なうことにより、(それらの処理をOS22に基づいてハードウェアHW群21を制御して)制御部110の機能が実現される。プロセッサ301が、検索機能が呼び出された場合に、ミドルウェアMW23またはアプリケーションプログラムAP24の少なくとも一部に基づく処理を行なうことにより、(それらの処理をOS22に基づいてハードウェアHW群21を制御して)制御部210の機能が実現される。符号化機能および検索機能は、アプリケーションプログラムAP24自体に含まれても良いし、アプリケーションプログラムAP24に従って呼び出されることで実行されるミドルウェアMW23の一部であっても良い。 When the form generation function is called, the processor 301 performs processing based on at least a part of the middleware MW23 or the application program AP24 (by controlling the hardware HW group 21 based on the OS 22) ) The function of the control unit 110 is realized. When the search function is called, the processor 301 performs processing based on at least a part of the middleware MW23 or the application program AP24 (by controlling the hardware HW group 21 based on the OS 22). The function of the control unit 210 is realized. The encoding function and the search function may be included in the application program AP24 itself, or may be a part of the middleware MW23 that is executed by being called according to the application program AP24.
 図22は、実施例のシステムにおける装置の構成例を示す図である。図22のシステムは、コンピュータ1a、コンピュータ1b、基地局2およびネットワーク3を含む。コンピュータ1aは、無線または有線の少なくとも一方により、コンピュータ1bと接続されたネットワーク3に接続している。 FIG. 22 is a diagram illustrating a configuration example of an apparatus in the system of the embodiment. The system in FIG. 22 includes a computer 1 a, a computer 1 b, a base station 2, and a network 3. The computer 1a is connected to the network 3 connected to the computer 1b by at least one of wireless and wired.
 帳票出力装置100と検索装置200とは、図22に示すコンピュータ1aとコンピュータ1bとのいずれに含まれても良い。コンピュータ1bが帳票出力装置100の機能を含み、コンピュータ1aが検索装置200の機能を含んでも良いし、コンピュータ1aが帳票出力装置100の機能を含み、コンピュータ1bが検索装置200の機能を含んでも良い。また、コンピュータ1aとコンピュータ1bとの双方が、帳票出力装置100の機能および検索装置200の機能を備えても良い。 The form output device 100 and the search device 200 may be included in either the computer 1a or the computer 1b shown in FIG. The computer 1b may include the function of the form output device 100, the computer 1a may include the function of the search device 200, the computer 1a may include the function of the form output device 100, and the computer 1b may include the function of the search device 200. . Further, both the computer 1a and the computer 1b may have the function of the form output device 100 and the function of the search device 200.
100 帳票出力装置
110 制御部
111 帳票出力形式データ生成部
112 符号化処理部
112a 符号化部
112b インデックス生成部
113 埋込部
114 出力部
120 記憶部
121 符号化辞書
122 2次元ハッシュ化インデックス
123 第1の3次元ハッシュ化インデックス
124 第2の3次元ハッシュ化インデックス
200 検索装置
211 検索対象受付部
212 第1の復元部
213 第2の復元部
214 検索処理部
215 検索結果出力部
220 記憶部
221 符号化辞書
222 2次元ハッシュ化インデックス
223 第1の3次元ハッシュ化インデックス
224 第2の3次元ハッシュ化インデックス
225 第1の復元ビットマップ
226 第2の復元ビットマップ
227 第3の復元ビットマップ
228 絞込みビットマップ
100 Form output device 110 Control unit 111 Form output format data generation unit 112 Encoding processing unit 112a Encoding unit 112b Index generation unit 113 Embedding unit 114 Output unit 120 Storage unit 121 Encoding dictionary 122 Two-dimensional hashed index 123 First The second three-dimensional hashed index 124 The second three-dimensional hashed index 200 The search device 211 The search target receiving unit 212 The first restoration unit 213 The second restoration unit 214 The search processing unit 215 The search result output unit 220 The storage unit 221 Encoding Dictionary 222 Two-dimensional hashed index 223 First three-dimensional hashed index 224 Second three-dimensional hashed index 225 First restored bitmap 226 Second restored bitmap 227 Third restored bitmap 228 Refined bitmap

Claims (9)

  1.  コンピュータに、
     複数のカラムを有する帳票を含む帳票データから帳票出力形式データを生成し、
     単語、文字、または数値に対するインデックス情報であって、前記複数のカラムそれぞれの属性と、前記帳票出力形式データに含まれる前記複数のカラムそれぞれに対応したデータ相互の前記帳票データにおける位置関係とを特定可能な位置情報を含む前記インデックス情報を生成し、
     前記インデックス情報、および前記帳票出力形式データを含む出力ファイルを出力する
     処理を実行させることを特徴とするインデックス付きデータ生成プログラム。
    On the computer,
    Generate form output format data from form data including forms with multiple columns,
    Index information for words, characters, or numerical values, which identifies the attributes of each of the plurality of columns and the positional relationship in the form data among the data corresponding to each of the plurality of columns included in the form output format data Generating the index information including possible position information;
    An indexed data generation program for executing a process of outputting an output file including the index information and the form output format data.
  2.  前記出力ファイルは、前記出力ファイルの拡張領域に、前記帳票出力形式データが符号化された符号化データ、および前記インデックス情報を含む
     ことを特徴とする請求項1に記載のインデックス付きデータ生成プログラム。
    The indexed data generation program according to claim 1, wherein the output file includes encoded data obtained by encoding the form output format data and the index information in an extension area of the output file.
  3.  前記符号化データは、前記帳票出力形式データが、前記帳票の属性ごとに、符号化されたデータである
     ことを特徴とする請求項2に記載のインデックス付きデータ生成プログラム。
    The indexed data generation program according to claim 2, wherein the encoded data is data in which the form output format data is encoded for each attribute of the form.
  4.  前記インデックス情報は、前記単語、前記文字、または前記数値と、前記帳票のファイル情報と、前記位置情報とを軸とするビットマップ型転置インデックス情報である
     ことを特徴とする請求項1~3の何れか1つに記載のインデックス付きデータ生成プログラム。
    The index information is bitmap-type transposed index information with the word, the character, or the numerical value, the file information of the form, and the position information as axes. The indexed data generation program according to any one of the above.
  5.  コンピュータが、
     複数のカラムを有する帳票を含む帳票データから帳票出力形式データを生成し、
     単語、文字、または数値に対するインデックス情報であって、前記複数のカラムそれぞれの属性と、前記帳票出力形式データに含まれる前記複数のカラムそれぞれに対応したデータ相互の前記帳票データにおける位置関係とを特定可能な位置情報を含む前記インデックス情報を生成し、
     前記インデックス情報、および前記帳票出力形式データを含む出力ファイルを出力する
     処理を実行させることを特徴とするインデックス付きデータ生成方法。
    Computer
    Generate form output format data from form data including forms with multiple columns,
    Index information for words, characters, or numerical values, which identifies the attributes of each of the plurality of columns and the positional relationship in the form data among the data corresponding to each of the plurality of columns included in the form output format data Generating the index information including possible position information;
    An indexed data generation method comprising: executing an output file including the index information and the form output format data.
  6.  複数のカラムを有する帳票を含む帳票データから帳票出力形式データを生成する第1生成部と、
     単語、文字、または数値に対するインデックス情報であって、前記複数のカラムそれぞれの属性と、前記帳票出力形式データに含まれる前記複数のカラムそれぞれに対応したデータ相互の前記帳票データにおける位置関係とを特定可能な位置情報を含む前記インデックス情報を生成する第2生成部と、
     前記インデックス情報、および前記帳票出力形式データを含む出力ファイルを出力する出力部と
     を有することを特徴とするインデックス付きデータ生成システム。
    A first generation unit that generates form output format data from form data including a form having a plurality of columns;
    Index information for words, characters, or numerical values, which identifies the attributes of each of the plurality of columns and the positional relationship in the form data among the data corresponding to each of the plurality of columns included in the form output format data A second generator for generating the index information including possible position information;
    An indexed data generation system comprising: an output unit that outputs an output file including the index information and the form output format data.
  7.  コンピュータに、
     単語、文字、数値を組み合わせた検索対象の文字列を受け付け、
     単語、文字、または数値に対するインデックス情報であって、複数のカラムそれぞれの属性と、前記複数のカラムを有する帳票を含む帳票データから生成された帳票出力形式データに含まれる前記複数のカラムそれぞれに対応したデータ相互の前記帳票データにおける位置関係とを特定可能な位置情報を含む前記インデックス情報を参照して、前記検索対象の文字列に含まれる前記単語、前記文字、前記数値が前記帳票出力形式データに含まれ、かつ、位置関係が前記検索対象の文字列と一致するかを判別する
     処理を実行させることを特徴とする検索プログラム。
    On the computer,
    Accepts a search target string that is a combination of words, letters, and numbers,
    Index information for words, characters, or numerical values, corresponding to each of the plurality of columns included in the form output form data generated from the form data including the attributes of the plurality of columns and the form having the plurality of columns. The word, the character, and the numerical value included in the character string to be searched are referred to as the form output format data with reference to the index information that includes position information that can specify the positional relationship in the form data between the data. And a process for determining whether the positional relationship matches the character string to be searched.
  8.  コンピュータが、
     単語、文字、数値を組み合わせた検索対象の文字列を受け付け、
     単語、文字、または数値に対するインデックス情報であって、複数のカラムそれぞれの属性と、前記複数のカラムを有する帳票を含む帳票データから生成された帳票出力形式データに含まれる複数のカラムそれぞれに対応したデータ相互の前記帳票データにおける位置関係とを特定可能な位置情報を含む前記インデックス情報を参照して、前記検索対象の文字列に含まれる前記単語、前記文字、前記数値が前記帳票出力形式データに含まれ、かつ、位置関係が前記検索対象の文字列と一致するかを判別する
     処理を実行させることを特徴とする検索方法。
    Computer
    Accepts a search target string that is a combination of words, letters, and numbers,
    Index information for words, characters, or numerical values, corresponding to each attribute of each of a plurality of columns and each of a plurality of columns included in the form output format data generated from the form data including the form having the plurality of columns. With reference to the index information including position information that can identify the positional relationship in the form data between the data, the word, the character, and the numerical value included in the character string to be searched are included in the form output format data. A search method comprising: executing a process of determining whether or not the positional relationship matches the character string to be searched.
  9.  単語、文字、数値を組み合わせた検索対象の文字列を受け付ける受付部、
     単語、文字、または数値に対するインデックス情報であって、複数のカラムそれぞれの属性と、前記複数のカラムを有する帳票を含む帳票データから生成された帳票出力形式データに含まれる複数のカラムそれぞれに対応したデータ相互の前記帳票データにおける位置関係とを特定可能な位置情報を含む前記インデックス情報を参照して、前記検索対象の文字列に含まれる前記単語、前記文字、前記数値が前記帳票出力形式データに含まれ、かつ、位置関係が前記検索対象の文字列と一致するかを判別する判別部と
     を有することを特徴とする検索システム。
    A reception unit that accepts a search target character string combining words, characters, and numerical values,
    Index information for words, characters, or numerical values, corresponding to each attribute of each of a plurality of columns and each of a plurality of columns included in the form output format data generated from the form data including the form having the plurality of columns. With reference to the index information including position information that can identify the positional relationship in the form data between the data, the word, the character, and the numerical value included in the character string to be searched are included in the form output format data. And a determination unit that determines whether the positional relationship matches the character string to be searched.
PCT/JP2016/080034 2016-10-07 2016-10-07 Program for generation of indexed data, method for generation of indexed data, system for generation of indexed data, search program, search method, and search system WO2018066144A1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2018543574A JP6575688B2 (en) 2016-10-07 2016-10-07 Indexed data generation program, indexed data generation method, indexed data generation system, search program, search method, and search system
PCT/JP2016/080034 WO2018066144A1 (en) 2016-10-07 2016-10-07 Program for generation of indexed data, method for generation of indexed data, system for generation of indexed data, search program, search method, and search system
US16/280,046 US11182341B2 (en) 2016-10-07 2019-02-20 Recording medium recording indexed data generation program, indexed data generation method and retrieval method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2016/080034 WO2018066144A1 (en) 2016-10-07 2016-10-07 Program for generation of indexed data, method for generation of indexed data, system for generation of indexed data, search program, search method, and search system

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US16/280,046 Continuation US11182341B2 (en) 2016-10-07 2019-02-20 Recording medium recording indexed data generation program, indexed data generation method and retrieval method

Publications (1)

Publication Number Publication Date
WO2018066144A1 true WO2018066144A1 (en) 2018-04-12

Family

ID=61830864

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2016/080034 WO2018066144A1 (en) 2016-10-07 2016-10-07 Program for generation of indexed data, method for generation of indexed data, system for generation of indexed data, search program, search method, and search system

Country Status (3)

Country Link
US (1) US11182341B2 (en)
JP (1) JP6575688B2 (en)
WO (1) WO2018066144A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108763512A (en) * 2018-05-30 2018-11-06 重庆小雨点小额贷款有限公司 A kind of information processing method, device and server
JP6970867B1 (en) * 2021-06-30 2021-11-24 株式会社インフォメックス Search device, search method, and program
WO2023276168A1 (en) * 2021-06-30 2023-01-05 株式会社インフォメックス Search device, search method, and recording medium

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7210130B2 (en) * 2017-04-07 2023-01-23 富士通株式会社 Encoding program, encoding method and encoding device

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001056836A (en) * 1999-08-19 2001-02-27 Casio Comput Co Ltd Document processor and storage medium
WO2011132420A1 (en) * 2010-04-20 2011-10-27 株式会社アイ・ピー・エス Database, ticket data management server and index data management program
JP2012123574A (en) * 2010-12-07 2012-06-28 Canon Marketing Japan Inc Business form system, and processing method and program thereof

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2244626A1 (en) * 1998-07-31 2000-01-31 Kom Inc. A hardware and software system
US6405187B1 (en) * 1999-06-18 2002-06-11 International Business Machines Corporation Utilizing encoded vector indexes for statistics in database processing
JP2002015266A (en) 2000-06-30 2002-01-18 Mitsubishi Electric Business Systems Co Ltd Electronic document system
US7949689B2 (en) * 2002-07-18 2011-05-24 Accenture Global Services Limited Media indexing beacon and capture device
JP3784060B2 (en) * 2003-01-10 2006-06-07 インターナショナル・ビジネス・マシーンズ・コーポレーション Database search system, search method and program thereof
JP2005084784A (en) 2003-09-05 2005-03-31 Canon Inc Printing system
US7747629B2 (en) * 2006-08-23 2010-06-29 International Business Machines Corporation System and method for positional representation of content for efficient indexing, search, retrieval, and compression
US8250115B2 (en) * 2007-08-10 2012-08-21 International Business Machines Corporation Method, apparatus and software for processing data encoded as one or more data elements in a data format
US8825592B2 (en) * 2008-03-12 2014-09-02 Web Access, Inc. Systems and methods for extracting data from a document in an electronic format
JP2012123575A (en) 2010-12-07 2012-06-28 Canon Marketing Japan Inc Information processor, control method for the same and program
WO2012126180A1 (en) * 2011-03-24 2012-09-27 Microsoft Corporation Multi-layer search-engine index
US20120303633A1 (en) * 2011-05-26 2012-11-29 International Business Machines Corporation Systems and methods for querying column oriented databases
JP2013045208A (en) * 2011-08-23 2013-03-04 Fujitsu Ltd Data generation method, device and program, retrieval processing method, and device and program
US9251413B2 (en) * 2013-06-14 2016-02-02 Lexmark International Technology, SA Methods for automatic structured extraction of data in OCR documents having tabular data
US9495347B2 (en) * 2013-07-16 2016-11-15 Recommind, Inc. Systems and methods for extracting table information from documents
WO2015052690A1 (en) * 2013-10-10 2015-04-16 Yandex Europe Ag Methods and systems for indexing references to documents of a database and for locating documents in the database
US9870382B2 (en) * 2014-03-25 2018-01-16 Sap Se Data encoding and corresponding data structure
WO2016000115A1 (en) * 2014-06-30 2016-01-07 Microsoft Technology Licensing, Llc Understanding tables for search
US10452661B2 (en) * 2015-06-18 2019-10-22 Microsoft Technology Licensing, Llc Automated database schema annotation
US10078629B2 (en) * 2015-10-22 2018-09-18 International Business Machines Corporation Tabular data compilation
US10095720B2 (en) * 2016-02-05 2018-10-09 Amadeus S.A.S. Database table index
US10706218B2 (en) * 2016-05-16 2020-07-07 Linguamatics Ltd. Extracting information from tables embedded within documents

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001056836A (en) * 1999-08-19 2001-02-27 Casio Comput Co Ltd Document processor and storage medium
WO2011132420A1 (en) * 2010-04-20 2011-10-27 株式会社アイ・ピー・エス Database, ticket data management server and index data management program
JP2012123574A (en) * 2010-12-07 2012-06-28 Canon Marketing Japan Inc Business form system, and processing method and program thereof

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108763512A (en) * 2018-05-30 2018-11-06 重庆小雨点小额贷款有限公司 A kind of information processing method, device and server
JP6970867B1 (en) * 2021-06-30 2021-11-24 株式会社インフォメックス Search device, search method, and program
WO2023276168A1 (en) * 2021-06-30 2023-01-05 株式会社インフォメックス Search device, search method, and recording medium

Also Published As

Publication number Publication date
JP6575688B2 (en) 2019-09-18
JPWO2018066144A1 (en) 2019-06-24
US11182341B2 (en) 2021-11-23
US20190251062A1 (en) 2019-08-15

Similar Documents

Publication Publication Date Title
JP6720664B2 (en) Index generation program, index generation device, index generation method, search program, search device, and search method
JP6575688B2 (en) Indexed data generation program, indexed data generation method, indexed data generation system, search program, search method, and search system
JP2009217839A (en) Creating perfect hash using offset table
JP6641857B2 (en) Encoding program, encoding method, encoding device, decoding program, decoding method, and decoding device
JP6679874B2 (en) Encoding program, encoding device, encoding method, decoding program, decoding device, and decoding method
EP3236367B1 (en) Encoding program, encoding method, encoding device, retrieval program, retrieval method, and retrieval device
US10872060B2 (en) Search method and search apparatus
JP6540308B2 (en) Encoding program, encoding method, encoding apparatus, decoding program, decoding method and decoding apparatus
JP6551131B2 (en) Index generation program, index generation device, index generation method, search program, search device and search method
US11055328B2 (en) Non-transitory computer readable medium, encode device, and encode method
US20170116240A1 (en) System and method for search indexing
JP6805720B2 (en) Data search program, data search device and data search method
JP6728926B2 (en) Encoding processing program, encoding processing apparatus, encoding processing method, decoding processing program, decoding processing apparatus, and decoding processing method
US10997139B2 (en) Search apparatus and search method
US9219497B2 (en) Compression device, compression method, and recording medium
US20190205297A1 (en) Index generating apparatus, index generating method, and computer-readable recording medium
JP6931442B2 (en) Coding program, index generator, search program, coding device, index generator, search device, coding method, index generation method and search method
JP2019121861A (en) Encoding program, dynamic dictionary generation program, encoding method, dynamic dictionary generation method, encoding apparatus, and decoding apparatus
JP2018182466A (en) Encoding program, encoding method, and encoding device
JP2016134754A (en) Conversion processing program, information processor, and conversion processing method
JP2018060425A (en) Index generation program, index generator, index generation method, search program, search device, and search method

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 16918340

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2018543574

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 16918340

Country of ref document: EP

Kind code of ref document: A1