WO2008047432A1 - Programme de recherche d'informations, supports d'enregistrement comprenant un tel programme enregistré, procédé de recherche d'informations, dispositif de recherche d'informations - Google Patents

Programme de recherche d'informations, supports d'enregistrement comprenant un tel programme enregistré, procédé de recherche d'informations, dispositif de recherche d'informations Download PDF

Info

Publication number
WO2008047432A1
WO2008047432A1 PCT/JP2006/320827 JP2006320827W WO2008047432A1 WO 2008047432 A1 WO2008047432 A1 WO 2008047432A1 JP 2006320827 W JP2006320827 W JP 2006320827W WO 2008047432 A1 WO2008047432 A1 WO 2008047432A1
Authority
WO
WIPO (PCT)
Prior art keywords
numerical value
file
compression
numerical
search target
Prior art date
Application number
PCT/JP2006/320827
Other languages
English (en)
French (fr)
Inventor
Masahiro Kataoka
Hiroyuki Torii
Masahiro Kurishima
Hideo Kasai
Original Assignee
Fujitsu Limited
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 Fujitsu Limited filed Critical Fujitsu Limited
Priority to JP2008539647A priority Critical patent/JP4707198B2/ja
Priority to PCT/JP2006/320827 priority patent/WO2008047432A1/ja
Publication of WO2008047432A1 publication Critical patent/WO2008047432A1/ja
Priority to US12/418,886 priority patent/US8131721B2/en
Priority to US13/308,133 priority patent/US9081874B2/en

Links

Classifications

    • 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/903Querying
    • G06F16/90335Query processing
    • G06F16/90344Query processing by using string matching techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • G06F16/81Indexing, e.g. XML tags; Data structures therefor; Storage structures
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation

Definitions

  • the present invention relates to an information search program related to a high-speed technology for numerical match search, range search, and numerical abstraction search for numerical data such as forms and clinical trial databases, a recording medium storing the program, and information search A method and an information retrieval apparatus.
  • Advanced index full-text search Internet full-text search is speeded up by using an advanced index, but numerical search requires an even larger index, so it is faster. It is not subject to conversion.
  • Simple index full-text search A high-speed search for full-text search is performed using a simple index such as a character composition table related to kanji, but a high-speed search for numerical values is not attempted.
  • Indexless full-text search A string search is performed on all data by a high-speed search engine. The search for numerical values should be accelerated.
  • Patent Document 1 Japanese Patent Laid-Open No. 3-19081
  • the uncompressed and non-encrypted numerical value matching search does not achieve high-speed search using an index. Spend a lot of time.
  • the present invention has been made in view of the above, and it is possible to increase the speed and accuracy of a numerical range search by specifying a file in which a numerical value within the numerical range exists in a compressed state. It is an object of the present invention to provide an information search program, a recording medium storing the program, an information search method, and an information search device.
  • the information search program of the first invention the recording medium storing the program, the information search method, and the information search device are provided with a boundary between arbitrary numerical ranges.
  • the number of digits and the leading digit of the numeric value that defines the acquired boundary are detected, and the bit string that indicates the presence or absence of a numeric value in the numeric group that satisfies the digit number and the leading digit for each search target file.
  • a bit string representing the number of detected digits and the presence or absence of a numerical value in the numerical group satisfying the first digit is extracted for each search target file from the set, and the number of detected digits and A search target file corresponding to a bit indicating the presence of a numerical value in a numerical group satisfying the first digit is specified from the plurality of search target files, and the specified search target file is specified. It is determined whether the in-file numerical value satisfies the boundary condition with the numerical value that defines the boundary, and whether or not it is powerful is determined. Based on the determined determination result, the specified search target file is determined. A file including a numerical value within the numerical value range is determined.
  • One numerical group satisfying the number of digits and the first digit of one numerical value defining the boundary, and the number of digits and the first digit of the other numerical value defining the boundary It is determined whether or not an intermediate numerical group exists with the other numerical group satisfying the condition, and among the search target files in which the numerical value in the one numerical group exists, the numerical value in the intermediate numerical group is The search target file (hereinafter referred to as “one search target file” ⁇ ⁇ ) is identified, and among the search target files in which the numerical value in the other numerical value group exists, the numerical value in the intermediate numerical value group exists.
  • the search target file (hereinafter referred to as “the other search target file” t ⁇ ⁇ ) is identified and included in one of the specified search target files! /, Whether the numerical value in the file satisfies the boundary condition with one numerical value that defines the boundary, and the numerical value in the file included in the other specified search target file satisfies the boundary. Satisfy the boundary condition with the other numerical value to be defined, and determine whether or not to confirm the result. Based on the determined determination result, the one search target file, the other search target file, or the above It is also possible to determine the search target file that contains the numerical values in the intermediate numerical value group as a file that includes numerical values within the numerical value range. [0018] According to the present invention, it is possible to achieve a high-speed search for narrowing down search target files including numerical values in a numerical value group satisfying the number of digits and the leading digit.
  • the information search program of the second invention acquires a numerical value that defines the boundary of an arbitrary numerical value range.
  • the numerical value that defines the boundary is compressed in a predetermined compression format, the compression information related to the numerical value that defines the boundary, and the numerical value in the file included in the compressed search target file in which the search target file is compressed in the predetermined format
  • By comparing with the compression information on the file it is determined whether the numerical value in the file satisfies the boundary condition with the numerical value defining the boundary, and the compressed search is performed based on the determined determination result.
  • the target file is determined to be a file including a numerical value within the numerical value range.
  • the numerical values can be compared in the compressed state.
  • the numerical value defining the boundary the compression code relating to the number indicating the number of digits of the numerical value defining the boundary, and the number for each number of digits of the numerical value defining the boundary
  • the numerical value comparison is performed in a stepwise compressed state by comparing the number of digits, the number of the first digit, the number of the second digit, ... and! / In that order. be able to.
  • One numerical value group satisfying the number of digits and the first digit of one numerical value defining the boundary, and the number of digits and the first digit of the other numerical value defining the boundary It is determined whether or not an intermediate numerical group exists with the other numerical group satisfying the condition, and among the compressed search target files in which the numerical value in the one numerical group exists,
  • the numerical value does not exist ! specify the compressed search target file (hereinafter referred to as “one compressed search target file”), and among the compressed search target files that have a numerical value in the other numerical value group
  • a compressed key search target file hereinafter referred to as “the other compressed search target file” in which the numerical value in the intermediate numerical value group does not exist is specified, and the boundary is defined.
  • the other compressed search target file or the compressed search target file having a numerical value in the intermediate numerical value group may be determined as a file including a numerical value within the numerical value range.
  • the numerical range search is performed in a stepwise compressed state by comparing the number of digits, the first digit, the second digit, ... and! / In that order. Can do.
  • the appearance frequency of the number present in the search target file is corrected to an appearance frequency higher than the appearance frequency of the characters existing in the search target file, and the corrected appearance frequency is obtained.
  • the compression information related to the numerical value for compressing the search target file and defining the boundary and the compression information related to the numerical value in the file included in the compressed key search target file compressed by the file compression step It is also possible to determine whether or not the numerical value in the file satisfies the boundary condition with the numerical value that defines the boundary by checking the above.
  • the appearance frequency of commas existing in the search target file is corrected to an appearance frequency higher than the appearance frequency of characters existing in the search target file. Moyo. According to the present invention, the compression efficiency of numerical values including commas can be preferentially made higher than that of character data.
  • the appearance frequency of the decimal point existing in the search target file is further corrected to an appearance frequency higher than the appearance frequency of characters existing in the search target file. Moyo.
  • the information search program of the third invention the recording medium recording the program, the information search method, and the information search device are provided with a numerical value from a search target file in which numbers and letters are mixed. Is detected, the number of digits associated with the detected feeder is detected, and the numerical value is stored in the feeder based on the appearance frequency of the numbers included in the search target file.
  • the compressed information includes a compression code related to a number indicating the detected number of digits and a compression code related to a number for each number of digits of the numerical value.
  • the feeder is a piece of information specifying the type of the numerical value.
  • the compressed numerical values can be classified, and the numerical values can be compared or the numerical value range search can be performed between the same types of numerical values.
  • the numerical value may be detected as full-width or half-width, and the numerical value may be further compressed into compressed information including a compression code related to the detected detection result.
  • the compression code indicating the distinction between full-width and half-width is ignored, and the difference between full-width and half-width is excluded. You can perform numerical comparisons and numerical range searches.
  • a comma may be detected from the numerical values, and the numerical values may be further compressed into compressed information including a compression code related to the detected detection result.
  • a compression code related to the detected detection result.
  • the appearance frequency of the number existing in the search target file is corrected to an appearance frequency higher than the appearance frequency of the characters existing in the search target file, and the corrected appearance frequency is set to be corrected. Based on this, the numerical value may be compressed.
  • the appearance frequency of commas existing in the search target file is further corrected to an appearance frequency higher than the appearance frequency of characters existing in the search target file. Moyo.
  • the appearance frequency of the decimal point existing in the search target file is further corrected to an appearance frequency higher than the appearance frequency of characters existing in the search target file. Moyo.
  • An information search program, a recording medium on which the program is recorded, an information search method, and an information search apparatus according to the present invention specify a numerical value by compressing a file in which a numerical value within a numerical value range is compressed. There is an effect that it is possible to increase the speed and accuracy of the range search.
  • FIG. 1 is a block diagram showing a hardware configuration of an information retrieval apparatus according to an embodiment of the present invention.
  • FIG. 2 is an explanatory diagram showing the data structure of an electronic form.
  • FIG. 3 is an explanatory diagram showing the file configuration data 300 shown in FIG.
  • FIG. 4 is an explanatory diagram showing page list data 400 shown in FIG.
  • FIG. 5 is an explanatory diagram showing numerical value “character appearance frequency management data 500”.
  • FIG. 6 is a block diagram showing a functional configuration of the information search apparatus according to the embodiment of the present invention.
  • FIG. 7 is a block diagram showing a functional configuration of the numerical value / character appearance frequency management data generation unit 612 shown in FIG. 6.
  • FIG. 8 is a data configuration diagram showing a generation process of numerical value 'character appearance frequency management data 500.
  • FIG. 9 is a data configuration diagram showing a continuous character Z external character replacement process.
  • FIG. 10 is an explanatory diagram showing a finally generated consecutive character Z external character replacement table 640.
  • FIG. 11 is a block diagram showing a detailed functional configuration of the compressed Z cipher section 613 shown in FIG.
  • FIG. 12 is an explanatory diagram showing an example of correction of the appearance frequency of numbers and the like.
  • FIG. 13 is an explanatory diagram showing another example of correction of the appearance frequency of numbers and the like.
  • FIG. 14 is an explanatory diagram showing specific Huffman tree generation processing by the compressed Z encryption unit 613.
  • FIG. 15 is a block diagram showing a detailed functional configuration of the file file compression unit 1106 shown in FIG. 11.
  • FIG. 16-1 is an explanatory diagram of a first example of numerical compression processing.
  • FIG. 16-2 is an explanatory diagram of a second example of numerical compression processing.
  • FIG. 16-3 is an explanatory diagram of a third example of numerical compression processing.
  • FIG. 16-4 is an explanatory diagram of an example of numerical abstraction data compression processing.
  • Fig. 17-1 shows the compressed file form compressed by the file compression unit 1106 It is explanatory drawing which shows data structure of these.
  • FIG. 17-2 is a chart showing a comparison between the compressed block data Cl to Cm and the original block data before compression.
  • FIG. 18 is a block diagram showing a detailed functional configuration of search initialization unit 621 shown in FIG.
  • FIG. 19 is an explanatory diagram showing the correspondence between the first block correspondence table and the appearance map.
  • FIG. 20 is an explanatory diagram showing a correspondence relationship between the second block correspondence table and the appearance map.
  • FIG. 21 is a block diagram showing a detailed functional configuration of full-text search execution unit 624 in search execution unit 622.
  • FIG. 22 is an explanatory diagram showing an example of narrowing down the compressed document file Fi.
  • FIG. 23 is an explanatory view showing a mismatch matching process in the full-text search execution unit 624.
  • FIG. 24 is a chart showing a shift operation of the compressed block data shown in FIG. [25]
  • FIG. 25 is an explanatory diagram showing the generation process of the collation prediction table.
  • FIG. 26 is an explanatory diagram showing an all-bit mismatch verification process.
  • FIG. 27 is a block diagram showing a detailed functional configuration of a numerical search execution unit 625 in search execution unit 622.
  • Figure 28-1 is an explanatory diagram (No. 1) showing a comparative example of the numerical range.
  • Figure 28-2 is an explanatory diagram (part 2) showing a comparative example of the numerical range.
  • Figure 28-3 is an explanatory diagram (No. 3) showing a comparative example of the numerical range.
  • Figure 28-4 is an explanatory diagram (part 4) showing a comparative example of the numerical range.
  • FIG. 29 is a block diagram showing a detailed functional configuration of search result display unit 623 shown in FIG. 6.
  • FIG. 30 is a flowchart showing an information search processing procedure of information search apparatus 600 according to the embodiment of the present invention.
  • FIG. 31 shows the numerical value / character appearance frequency management data generation processing shown in FIG. 30 (step S3 001) is a flowchart showing a detailed processing procedure.
  • FIG. 32-1 is a flowchart (first half) showing a detailed processing procedure of the numerical value / character appearance frequency counting process (step S3102) described above.
  • FIG. 32-2 is a flowchart (second half) showing the detailed processing procedure of the numerical value / character appearance frequency totaling process (step S3102).
  • FIG. 33 is a flowchart showing a detailed processing procedure of the compressed Z encryption process (step S 3002) shown in FIG.
  • FIG. 34 is a flowchart showing a detailed processing procedure of the compression processing shown in step S3308 of FIG. 33.
  • FIG. 35 is a flowchart showing a detailed processing procedure of search initialization processing (step S3003) shown in FIG.
  • FIG. 36 is a flowchart showing a detailed processing procedure of the search processing (step S 3004) shown in FIG. 30.
  • FIG. 37 is a flowchart showing a verification prediction table generation processing procedure.
  • FIG. 38 is a flowchart showing a mismatch determination process procedure between compressed block data and a compressed keyword.
  • FIG. 39 is a flowchart showing an all-bit mismatch verification process (step S 3812 and step S 3817).
  • FIG. 40 is a flowchart showing a numerical value search execution processing procedure in a numerical value search mode according to the embodiment of the present invention.
  • FIG. 41 is a flowchart showing the lower limit specific Z comparison processing procedure shown in FIG. 40.
  • FIG. 42 is a flowchart showing a lower limit numerical value collation processing procedure.
  • FIG. 43 is a flowchart showing the upper limit specific Z comparison processing procedure shown in FIG. 40.
  • FIG. 44 is a flowchart showing the upper limit numerical value collation processing procedure.
  • FIG. 1 is a block diagram showing a hardware configuration of an information retrieval apparatus that is useful for an embodiment of the present invention.
  • the information retrieval apparatus includes a CPU 101, a ROM 102, a RAM 103, an HDD (hard disk drive) 104, an HD (node disk) 105, and an FDD (flexible disk drive) 106, which are detachable.
  • a recording medium an FD (flexible disk) 107, a display 108, an IZF (interface) 109, a keyboard 110, a mouse 111, a scanner 112, and a printer 113 are provided.
  • Each component is bus 100 Connected by each! RU
  • the CPU 101 governs overall control of the information search apparatus.
  • the ROM 102 considers programs such as a boot program.
  • the RAM 103 is used as a work area for the CPU 101.
  • the HDD 104 controls data read / write to the HD 105 according to the control of the CPU 101.
  • the HD 105 performs data written under the control of the HDD 104. .
  • the FDD 106 controls the read Z write of data to the FD 107 according to the control of the CPU 101.
  • the FD 107 stores data written under the control of the FDD 106, and causes the information retrieval device to read data stored in the FD 107.
  • the removable recording medium may be the power of the FD 107, CD-ROM (CD-R, CD-RW), MO, DVD (Digital Versatile Disk), memory card, or the like.
  • the display 108 displays data such as a document, an image, and function information as well as a cursor, an icon or a tool box.
  • a CRT, TFT liquid crystal display, plasma display, or the like can be adopted.
  • the IZF 109 is connected to a network 114 such as the Internet through a communication line, and is connected to other devices via the network 114.
  • the IZF 109 serves as an internal interface with the network 114 and controls data input / output from an external device.
  • a modem or a LAN adapter can be used as the IZF109.
  • the keyboard 110 includes keys for inputting characters, numbers, various instructions, and the like, and inputs data. Alternatively, a touch panel type input pad or a numeric keypad may be used.
  • the mouse 111 is used to move the cursor, select a range, or move and change the size of windows. A track ball or a joystick may be used as long as they have the same function as a pointing device.
  • the scanner 112 optically reads an image and takes in the image data into the information search device.
  • the scanner 112 may have an OCR function.
  • the printer 113 prints image data and document data.
  • a laser printer ink jet printer can be adopted.
  • FIG. 2 is an explanatory diagram showing the data structure of an electronic form.
  • the electronic form in this specification is the data obtained by digitizing the forms and forms and the connected forms.
  • the content 200 representing the electronic form is stored in the upper folder 201.
  • the upper folder 201 includes the management folder 202, the form folder 203, and the lower folder! /.
  • Each form data gj is composed of HTML format or XML format, for example, header part (destination data) including anchors and headwords, product name data, quantity data, amount data, subtotal part, total part, trailer part, etc. It has various items data.
  • FIG. 3 is an explanatory diagram showing the file configuration data 300 shown in FIG.
  • the form file fi of file number i is expressed as “file (i) .html”.
  • FIG. 4 is an explanatory diagram showing the page list data 400 shown in FIG.
  • the page list data 400 is data that associates the form file fi, form data gj, and file configuration data 300 shown in FIG.
  • Page list data 400 consists of the total number of files in form file fi (n + 1), block size (m byte), total number of data in form data gj (P pieces), file path data in form file fi FP (0) ⁇ FP (n), with page list.
  • the page list data 400 has a file number, the number of blocks, and the file path shown in FIG. 3 for each file path data FP (i).
  • the page list 401 is a list in which offset, length, and page number headwords are described for each file number i.
  • FIG. 5 is an explanatory diagram showing numerical value / character appearance frequency management data 500.
  • Numerical / character appearance frequency management data 500 is data for managing the appearance frequency of numerical / character data.
  • the numerical value character data is divided into numerical data and character data.
  • Numerical data is an abstract representation of numerical values such as numbers 0 to 9, numbers that consist of two or more consecutive numbers such as 00 to 99, numerical groups with the same number of digits and leading digits, and mild hypertension. This data includes abstract numerical data.
  • the numerical value group is a set of numerical values within a numerical value range defined by the number of digits and the leading numeral. For example, a numerical group with 3 digits and the first digit is 2 is a set of numerical values in the numerical range 200-299.
  • Character data is data including English characters, kana, kanji, consecutive characters, and the like. Specifically, 8-bit (ASCII) alphabetic characters, katakana, symbols, 16-bit (JIS) alphabetic characters, force Takana, symbols, 16-bit CFIS) kana and kanji are included in the character data. These alphabetic characters, phonograms and kanji character data centered on 8-bit codes such as kana and katakana are referred to as “standard character data” in this specification.
  • character data In addition to standard character data, character data includes external characters and consecutive characters.
  • a character string is character data that has a string power of 2 or more.
  • the character sequence consists of 32-bit code character data.
  • binary data such as an address pointer is included in the “character data” although it is non-character data.
  • the term “character data” includes binary data.
  • the numerical value / character appearance frequency management data 500 includes the appearance frequency of the numerical value 'character data, the number of appearance files (may be the number of blocks), the appearance rank, and the appearance map 510 (501 to 509).
  • the appearance frequency is the frequency (number of times) that the numerical / character data has appeared in all form files fO to fn.
  • the number of appearance files is the number of form files in which the numerical value character data appears in all form files fO to fn.
  • the appearance order is a rank in the order of appearance frequency.
  • the appearance map 510 is a bit string of n + 1 bits arranged in the order of the form file fi, and indicates whether or not a numerical value character data exists.
  • the leftmost bit is the bit corresponding to the form file fO
  • the rightmost bit is the bit corresponding to the form file fn.
  • "1" represents ON and "0" represents OFF. That is, in a numerical value 'character data', when the bit corresponding to the form file fi in the appearance map 510 is "1", this indicates that the numerical value 'character data exists in the form file fi. If the bit corresponding to the form file fi is “0”, it indicates that the numerical value / character data does not exist in the form file fi.
  • FIG. 6 is a block diagram showing a functional configuration of the information retrieval apparatus according to the embodiment of the present invention.
  • the information search device 600 includes an editing unit 601 and a search unit 602.
  • the editing unit 601 includes a file configuration data extraction unit 611, a numerical value character appearance frequency management data generation unit 612, and a compressed Z encryption unit 613.
  • a form file is taken as an example of the search target, but data other than the form file may be used as long as the content includes numerical data.
  • the file configuration data extraction unit 611 extracts the page list data 400 shown in FIG. 4 from the form files fO to fn with reference to the file configuration data 300 shown in FIG. Also, the numerical / character appearance frequency management data generation unit 612 generates numerical / character appearance frequency management data 500 from the form files f 0 to f n. Further, the numerical / character appearance frequency management data generation unit 612 generates a consecutive-character Z-external character replacement table 640 that replaces consecutive numeric characters and consecutive characters described in a plurality of form files fO to fn with external characters. In the following, the numeric consecutive characters and the consecutive characters are collectively referred to as “continuous character data”.
  • the compression Z encryption unit 613 compresses the form files fO to fn to generate a compressed file form file group F, and the numerical value / character appearance frequency management data 500 and the consecutive character Z external character replacement table.
  • 640 is encrypted and an encrypted numerical value 'character appearance frequency management data 650 and an encrypted consecutive character Z external character replacement table 660 are generated.
  • the search unit 602 includes a search initialization unit 621, a search execution unit 622, and a search result display unit 623.
  • the search initialization unit 621 decrypts the encrypted numerical value / character appearance frequency management data 650 and the cipher key sequence Z external character replacement table 660, and the search unit 602 Perform search initialization.
  • the search execution unit 622 generates a search candidate list by executing a search process using the numerical value / character appearance frequency management data 500 and the consecutive character Z external character replacement table 640.
  • the search execution unit 622 includes a full-text search execution unit 624 that executes full-text search, and a numerical value search execution unit 625 that executes numerical value search.
  • the full-text search execution unit 624 receives a search keyword input and executes a full-text search of the compressed form file, thereby generating a search candidate list indicating the form file fi corresponding to the search keyword.
  • the numerical value search execution unit 625 receives an input of a numerical value or a numerical value range, and executes a numerical value search on the compressed form file group F, so that it corresponds to the input numerical value or numerical value range. Generate a search candidate list showing the form file fi.
  • the search result display unit 623 expands the search candidate selected by the user from the search candidates by the search execution unit 622 and displays it as a search result.
  • the data 650 and the cipher string Z external character replacement table 660 realize their functions by, for example, recording media such as the ROM 102, RAM 103, and HD 105 shown in FIG.
  • the editing unit 601 (including the internal functional configuration) and the search unit 602 (including the internal functional configuration) specifically include, for example, the ROM 102, RAM 103, and HD 105 shown in FIG.
  • the function is realized by the CPU 101 executing the program recorded on the recording medium.
  • FIG. 7 is a block diagram showing a functional configuration of the numerical value / character appearance frequency management data generation unit 612 shown in FIG.
  • a numerical value / character appearance frequency management data generation unit 612 includes a numerical value / character data extraction unit 701, a numerical value / character appearance frequency totaling unit 702, a sorting unit 703, and a generation processing unit 704.
  • the [0081] Numerical value / character data extraction unit 701 sequentially extracts numerical value 'character data from the form file.
  • the numerical value 'character appearance frequency totaling unit 702 totalizes the appearance frequency of the numerical value' character data extracted by the numerical value / character data extracting unit 701 in the form file fi.
  • the numerical value-character appearance frequency totaling unit 702 also detects the presence / absence of numerical value 'character data for each form file fO to fn.
  • the sorting unit 703 sorts the numerical value “character data” in the order of appearance frequency.
  • the generation processing unit 704 uses the sorted numerical values “character data appearance frequency” and the numerical value “character data appearance maps 501 to 509 that are the presence / absence detection results to obtain the numerical value“ character appearance frequency management data 50 0. Is generated. Also, a continuous character Z external character replacement table 640 is generated. Here, the process of generating the numerical value / character appearance frequency management data 500 and the consecutive Z external character replacement table 640 by the numerical value / character appearance frequency management data generation unit 612 will be specifically described.
  • FIG. 8 is a data configuration diagram showing a generation process of the numerical value / character appearance frequency management data 500.
  • (A) is the data structure of the numerical value 'character appearance frequency management data 500 when the numerical value' character appearance data is counted by the numerical value 'character appearance frequency totaling unit 702'
  • (B) is the consecutive character Z external character.
  • (C) is the data structure of numerical value / character appearance frequency management data 500 after sorting mixed data consisting of standard character data and external character data power
  • (D ) Shows the data structure of numerical value / character appearance frequency management data 500 after cutting low-frequency mixed data
  • (E) shows the data structure of the finally generated numerical value / character appearance frequency management data 500. ing.
  • reference numeral 800 denotes a management area for character appearance frequency management data 500.
  • Reference numeral 801 is a numerical area for storing the appearance frequency, the number of appearance files, the appearance rank, and the appearance map of numerical data (excluding the consecutive numeric characters).
  • Code 802 is the appearance of standard character data such as 8-bit (ASCII) English characters, katakana, symbols, 16-bit (JIS) English characters, katakana, symbols, 16-bit (JIS) kana and kanji. This is a standard character area that stores the frequency, number of appearance files, appearance order, and appearance map.
  • Reference numeral 803 denotes an external character area for storing the appearance frequency of external characters, the number of appearance files, the appearance rank, and the appearance map.
  • Reference numeral 804 denotes a continuous character area for storing the appearance frequency, the number of appearance files, the appearance rank, and the appearance map of continuous character data.
  • the code 805 is an 8-bit buffer. This is a binary area that stores the appearance frequency, the number of appearance files, and the appearance order of the initial data.
  • the continuous character data in the continuous character region 804 is sorted in the order of appearance frequency. Then, the consecutive character data having a predetermined appearance frequency or higher is replaced with other external character data (hereinafter referred to as “continuous character external character data”) so as not to overlap with the external character data.
  • continuous character external character data refers to other external character data
  • continuous character data with a frequency lower than the predetermined appearance frequency is continuous character data with a low appearance frequency, and is therefore decomposed into single character data and assigned to the corresponding area.
  • the data structure of the numerical value 'character appearance frequency management data 500 after the consecutive character Z external character replacement processing is obtained.
  • the management area 800 includes the number of file blocks, the number of types of appearance character data (number of appearance characters (type)), and the number of consecutive external character data (consecutive characters). The number of characters (256 types)) and the number of binary data (binary (256 types)) are recorded.
  • the appearance frequency and the appearance map 510 are associated with each numerical value / character data excluding binary data.
  • Numeric value 'Character data is sorted in the order of appearance frequency.
  • the numbers shown in FIG. in the value-character appearance frequency management data 500 numerical / character data and the appearance frequency thereof are encrypted by using a predetermined master key and by an exclusive OR (XOR) which is an encryption algorithm.
  • XOR exclusive OR
  • FIG. 9 is a data configuration diagram showing the consecutive-character Z external character replacement process.
  • (F) indicates the data configuration of the continuous character area 804 of the numerical value 'character appearance frequency management data 500 when the continuous character data is totaled by the numerical value' character appearance frequency totaling unit 702, and
  • (G) indicates the continuous character data.
  • the data structure of the continuous character area 804 after character data sorting, (H) shows the data structure after replacement.
  • the consecutive character area 804 has areas 901 to 907! /.
  • area 901 8-bit (ASCII) numeric string data ("00" to "99") information (the numeric string data, appearance frequency, number of appearance files, appearance rank, appearance map) is stored. ing.
  • information (character string data, appearance frequency, number of appearance files, appearance rank, appearance order) of 8-bit (8-3 11) character string data (“ ⁇ " to "22") Map) is stored.
  • 8-bit (ASCII) Katakana string data (“A” to “N”, muddy sound / semi muddy sound) information (the corresponding katakana data, appearance frequency, number of appearance files, appearance order, appearance) Map) is stored.
  • 16-bit (JIS) number string data (“00" to “99") information (the number string data, appearance frequency, number of appearance files, appearance rank, appearance map) is stored. Has been.
  • 16-bit (113) English character string data (“ ⁇ ” to “22”) information (number data, appearance frequency, number of appearance files, appearance order, appearance map) is stored. It is remembered.
  • 16-bit (JIS) Katakana string data (“aa” to “n”, muddy / semi-voiced sound) information (the katakana string data, appearance frequency, number of appearance files, appearance, (Rank, appearance map) is stored.
  • 16-bit (JIS) kana string data (“ah” to “n”, muddy sound, semi-voiced sound) information (kana string data, appearance frequency, number of appearance files, appearance order, Appearance map) is stored.
  • the data structure (G) is a data structure obtained by sorting the data structure (F) in order of appearance of each consecutive character data.
  • the area 911 is information on continuous character data having a high appearance frequency, and is to be replaced with external character data.
  • Area 912 is information of continuous character data (low appearance frequency continuous character data) having a frequency lower than a predetermined appearance frequency. This low appearance frequency continuous character data is decomposed into single character data. As a result, the appearance frequency of character data and the appearance maps 505 to 509 are corrected.
  • the data structure (H) is a data structure obtained by substituting high-appearance continuous-character data with external characters in the data structure (G).
  • the continuous character external character area 814 stores information on the replaced continuous character external character data (the continuous character external character data, the appearance frequency, the number of appearance files, the appearance order, the appearance map).
  • FIG. 10 is an explanatory diagram showing a finally generated consecutive-character Z external character replacement table 640.
  • the continuous character Z external character replacement table 640 is generated by associating the continuous character data in the area 911 of the data structure (G) with the continuous character data in the area 814 of the data structure (H).
  • FIG. 11 is a block diagram showing a detailed functional configuration of the compressed Z encryption unit 613 shown in FIG.
  • the compressed Z cipher section 613 includes an appearance frequency correction section 1101, a low appearance frequency numerical value / character data decomposition section 1102, an encryption section 1103, an occurrence probability calculation section 1104, and a Huffman tree generation section 1105. And a file compression unit 1106.
  • the appearance frequency correction unit 1101 corrects the appearance frequency for the numbers in the numerical value / character appearance frequency management data 500. Specifically, for example, the bit width of the compression code for the numbers 0-9, decimal point, and feeder (hereinafter referred to as “numbers”) is set, and the appearance frequency according to the bit width is set to 0-9. Set for numbers. More specifically, the appearance frequency of numbers and the like is forcibly corrected so as to be higher than the appearance frequency of character data.
  • FIG. 12 is an explanatory diagram showing an example of correction of the appearance frequency of numbers and the like.
  • FIG. 12 shows a code table for correcting the appearance frequency of numerical value character data.
  • the appearance frequency of each numerical value is 1Z16.
  • the appearance frequency is added according to the appearance order.
  • the correction example shown in Fig. 12 is effective for a form file with many numerical values. If the sum of appearance frequencies exceeds 1 due to correction
  • the appearance frequency of other character data is compensated. Will be corrected.
  • FIG. 13 is an explanatory diagram showing another example of correction of the appearance frequency of numbers and the like.
  • FIG. 13 also shows a code table for correcting the appearance frequency of the numerical value character data.
  • the bit width of the compression code is 5 bits
  • the appearance frequency of each numerical value is 1Z32. Further, the appearance frequency is added according to the appearance order.
  • the correction example shown in Fig. 13 is effective for websites with a lot of character data. If the sum of appearance frequencies exceeds 1 as a result of correction, the appearance frequency of other character data is corrected according to the appearance frequency of other character data.
  • the low appearance frequency numerical value 'character data decomposition unit 1102 sorts the numerical value / character data of the character area in the numerical value' character appearance frequency management data 500 in the order of high appearance frequency. Then, the remaining numerical value 'character data with a low appearance frequency equal to or lower than the predetermined appearance frequency is decomposed into an 8-bit code and stored in a neutral area where binary data of the same 8-bit code is stored.
  • the encryption key part 1103 uses the low-occurrence frequency numerical value / character data decomposition part 1102 to obtain the numerical value 'character appearance frequency management data 500 obtained by the decomposition by the XOR key using a predetermined master key. Execute the encryption key / character appearance frequency management data 650. Similarly, the Z-character extended character replacement table 640 can be encrypted by XOR using a predetermined master key to generate the encrypted character Z-external character replacement table 660.
  • the occurrence probability calculation unit 1104 receives the numerical data, standard character data, consecutive character external data and binary data in the character appearance frequency management data 500 obtained by the decomposition by the low appearance frequency numerical value / character data decomposition unit 1102. Sorting in order of appearance, and calculating the probability of occurrence.
  • the Huffman tree generation unit 1105 generates the occurrence probability power Huffman tree calculated by the occurrence probability calculation unit 1104.
  • the file compression unit 1106 compresses the form file group f using the Huffman tree generated by the Huffman tree generation unit 1105 to generate a compressed form file group F. Specifically, a short bit is assigned to the numerical value / character data described in each form file fO to fn in the order of appearance frequency after correction, that is, the occurrence probability is high, and the form file group Compress f.
  • the compression of the form file group f by the file compression unit 1106 The compression method is different for character data. This point will be described later.
  • FIG. 14 is an explanatory diagram showing specific Huffman tree generation processing by the compression Z encryption unit 613.
  • the numerical value 'character appearance frequency management data 500 shown in (I) of Fig. 14 is decomposed by the low appearance frequency numerical value' character data decomposition unit 1102 to decompose the low appearance frequency character data, and binary data is stored. Store in the binary area ( ⁇ in Fig. 14).
  • FIG. 15 is a block diagram showing a detailed functional configuration of the file compression unit 1106 shown in FIG. 11 .
  • the file compression unit 1106 includes a feeder detection unit, a character data extraction unit, a numerical value extraction unit, a detailed numerical information detection unit, and a compression processing unit.
  • the feeder detection unit 1501 detects the feeder in the medium force of the form file fi. Since the feeder is located at the beginning of the numerical value, if a feeder is detected, there will be a numerical value after that, and if no feeder is detected, it is recognized as the character data.
  • the character data extraction unit 1502 extracts the data at the position as character data.
  • the extracted character data is compressed by the compression processing unit 1505.
  • the numerical value extraction unit 1503 extracts a numerical value associated with the feeder, for example, a numerical string following the feeder as a numerical value. In this case, if a comma or decimal point is included in the numeric string, the comma or decimal point is also extracted.
  • the detailed numerical information detection unit 1504 receives the numerical values extracted by the numerical value extraction unit 1503. Extract detailed information.
  • the detailed information is, for example, the number of digits, the force that the number is full-width or half-width, the force that contains a comma, the force that contains a decimal point, Detect decimal point position.
  • the compression processing unit 1505 uses the Huffman tree generated by the Huffman tree generation unit 1105 to convert the character data extracted by the character data extraction unit 1502 and the numerical data extracted by the numerical value extraction unit 1503. Compress.
  • a Huffman tree is used to convert a number indicating the number of digits or a number for each digit into a compression code corresponding to the number.
  • the numerical compression codes for each digit shall be arranged in digit order. If the numerical value includes a decimal point, it is converted to a compression code corresponding to the decimal point. The presence / absence of commas and full-width / half-width are represented by 1 bit.
  • the half-width bit is “1” for full-width and “0” for half-width.
  • a comma presence / absence bit is set to indicate whether the numerical value is a notation using a comma “,”. This comma presence / absence bit is “1” when there is a comma and “0” when there is no comma.
  • the number of digits of the numerical value is detected.
  • the number of digits detected does not include the number of digits after the decimal point.
  • the compression code of the number indicated by the detected number of digits is read from the encoding table shown in FIG.
  • the compression codes of the numbers from the first digit to the last digit constituting the numerical value are read out from the code table table shown in FIG. 12 or FIG.
  • the compression code of the decimal point is read from the code table shown in FIG. 12 or FIG. In this way, the numerical value is compressed into a numerical string consisting of a compression code and bits.
  • a compressed numerical value The numerical value subjected to the compression process is referred to as a compressed numerical value.
  • FIG. 16-1 is an explanatory diagram of a first example of numerical compression processing.
  • the numerical value “ ⁇ 6, 800. ⁇ ” is separated from the leading “ ⁇ ” and the trailing “ ⁇ ”, and the numerical value “6, 800.” is extracted. Then, this numerical value “6, 800.” is compressed.
  • the compression code “1011” of the feeder “x ′ B ′” indicating the start position of the numerical value is also read out from the code table power shown in FIG.
  • the full-width / half-width bit “0” indicating that the numerical value “6, 800.” is a half-width is set.
  • the comma presence / absence bit “1” indicating that the numerical data “6, 800.” is expressed using a comma “,” is set.
  • the number of digits “4” of the numerical value “6,800.” Is detected, and the compression code “0100” of the detected number of digits “4” is read from the encoding table shown in FIG.
  • FIG. 16-2 is an explanatory diagram of a second example of numerical compression processing.
  • the first “$” and the last “-” are separated from the numerical information “$ 680.50—”, and the numerical value “68 0.50” is extracted. And this numerical value “680.50” is compressed.
  • the compression code “1011” of the feeder “x ′ B ′” indicating the starting position of the numerical value is also read out as the code table power shown in FIG.
  • the full-width / half-width bit “0” indicating that the numerical value “680.50” is a half-width is set.
  • the comma presence / absence bit “0” is set to indicate that the numerical value “680.50” is a notation that does not use a comma “,”.
  • the number of digits “3” of the numerical value “680.50” is detected, and the compression code “0011” of the detected number of digits “3” is read from the encoding table shown in FIG.
  • FIG. 16-3 is an explanatory diagram of a third example of numerical compression processing.
  • the numerical value “6800” is extracted by separating the last “circle” from the numerical information “6800 yen”. And Compress this number “6800”.
  • the compression code “1011” of the feeder “x ′ B ′” indicating the starting position of the numerical value is read out from the code table table shown in FIG.
  • the full-width / half-width bit “1” is set to indicate that the numerical value “6800” is full-width.
  • the comma presence / absence bit “0” is set to indicate that the numerical value “6800” is a notation that does not use the comma “,”.
  • the number of digits “4” of the numerical value “6800” is detected, and the compression code “0100” of the detected number of digits “4” is read from the code table shown in FIG.
  • FIG. 16-4 is an explanatory diagram of an example of numerical abstraction data compression processing.
  • the top and bottom “ ⁇ Z minimum blood pressure>” are separated from the numerical abstract data “ ⁇ minimum blood pressure> 1 07 ⁇ minimum blood pressure>” indicating the value of minimum blood pressure in the HTML data.
  • the numerical value “107” is extracted. Then, the numerical value “107” is compressed.
  • the compression code “00001011” of the feeder “x ′ 0B ′” indicating the starting position of the numerical value is also read out as the code table power shown in FIG.
  • This feeder “x ′ 0B ′” is a feeder for identifying that the numerical value is the final blood pressure.
  • the full-width / half-width bit “0” indicating that the numerical value “107” is a half-width is set.
  • a comma presence / absence bit “0” is set to indicate that the numerical value “107” is a notation that does not use a comma “,”.
  • the number of digits “3” of the numerical value “107” is detected, and the compression code “0011” of the detected number of digits “3” is read from the code table shown in FIG.
  • Figure 17-1 shows the compression key compressed by the file compression unit 1106. It is explanatory drawing which shows the data structure of a form file.
  • This compressed file form Fi includes an area 1701 for storing block number information (m), an area 1702 for storing address information (#l to #m) for each of m blocks, and a compressed block for each block. It consists of an area 1703 for storing data Cl to Cm.
  • FIG. 17-2 is a chart showing a comparison between the compressed block data Cl to Cm and the original block data before compression. Referring to Fig. 17-2, it can be seen that the length of the compressed block data Cl to Cm is compressed to about half the length of the corresponding original block data.
  • FIG. 18 is a block diagram showing a detailed functional configuration of the search initialization unit 621 shown in FIG.
  • the search initialization unit 621 includes a decoding unit 1801, a low appearance frequency numerical value / character data decomposition unit 1802, an occurrence probability calculation unit 1803, a Huffman tree generation unit 1804, and an occurrence map setting unit 1805.
  • the force is composed.
  • decryption section 1801 decrypts encrypted numerical value “character appearance frequency management data 650”. Specifically, decryption processing by exclusive OR (XOR) is executed using the master key of the encryption key used in FIG. Similarly, the encrypted consecutive character Z extended character replacement table 660 is also returned to the original consecutive character Z extended character replacement table 640. Further, the low-occurrence frequency numerical value / character data decomposition unit 1802, the occurrence probability calculation unit 1803, and the Knowman's tree generation unit 1804 include the low-occurrence frequency numerical value / character data decomposition unit 1102, the occurrence probability calculation unit 1104 and The same processing as that of the Huffman tree generation unit 1 105 is executed to generate a Huffman tree 1810. This Huffman tree is a Huffman tree corrected by the appearance frequency correction unit 1101.
  • the appearance map setting unit 1805 reads the appearance map 510 of the decrypted numerical value / character appearance frequency management data 500, expands the memory, and links it to the block correspondence table.
  • a kuten is a character code for full-width characters established by JIS, and the kuten correspondence table is a table that stores the address of each kuten.
  • FIG. 19 is an explanatory diagram showing a correspondence relationship between the character point correspondence table and the appearance map.
  • the character division point correspondence table 1900 is a table that associates the character data of the numerical value 'character appearance frequency management data 500 with the appearance maps 505 to 509. By using this character point-to-point correspondence table 1900, it is possible to call up the appearance maps 505 to 509 of bit strings indicating the presence or absence of character data corresponding to the point.
  • FIG. 20 is an explanatory diagram showing a correspondence relationship between the numerical point correspondence table and the appearance map.
  • the numerical value point correspondence table 2000 is a table that associates the numerical value group of the numerical value 'character appearance frequency management data 500 with the appearance map 503. By using this numerical value point correspondence table 2000, it is possible to call up an appearance map 503 of a bit string indicating whether or not there is a numerical value in a numerical value group corresponding to a specific point.
  • FIG. 21 is a block diagram showing a detailed functional configuration of full-text search execution unit 624 in search execution unit 622.
  • a full-text search execution unit 624 includes a search keyword input processing unit 2101, a search keyword compression unit 2102, an appearance map reading unit 2103, a compressed form file specifying unit 2104, and a compressed document form.
  • the search keyword input processing unit 2101 receives an input of a search keyword from a user. If there are multiple search keywords, the character strings of each search keyword are concatenated. Furthermore, when the consecutive characters of the search keyword correspond to the predetermined consecutive characters, the consecutive characters are replaced with external characters by using the continuous character Z external character replacement table 640. Thereafter, the search keyword input processing unit 2101 breaks down the search keyword into single characters.
  • the search keyword compression unit 2102 compresses the search keyword input by the search keyword input processing unit 2101 using the Huffman tree 1810 generated by the Huffman tree generation unit 1804 of the search initialization unit 621. To do. Also, the appearance map reading unit 2103 reads the bit string in each form file fO to fn of each character of the search keyword using the appearance map 510 set by the appearance map setting unit 1805. Specifically, this Since each character data in the current map 510 is linked to a block by the block correspondence table, the bit string of each character data of the search keyword that matches the block can be read.
  • the compressed file form specifying unit 2104 calculates the logical product of the bit strings in each form file fO to fn of each character read from the appearance map 510, so that each character data of the search keyword exists. By specifying the compressed form file, the compressed form file is narrowed down. Here, an example of narrowing down will be described.
  • FIG. 22 is an explanatory diagram showing an example of narrowing down the compressed document file Fi.
  • the bit string of the character “d” is [110 0].
  • the file numbers 0 and 1 form files f0 and fl include the character “output”
  • the file numbers 2 and 3 form files f2 and f3 do not include the character “output”. It is shown that.
  • the narrowing-down result indicates a logical product (AND) result of bits for each file number i.
  • the form file fl with the file number 1 has a bit “1” indicating the presence of power, so all characters that make up the search keyword “out”, “gold”, “den” and “ It can be seen that the “form” exists only in the form file fl and does not exist in the other form files fO, f2, and f3.
  • the file to be opened as the search target can be specified only to the compressed file file F1 obtained by compressing the form file fl, and unnecessary file opening Z close processing is prevented to improve the search speed. be able to.
  • the compressed file form file extracting unit 2105 extracts the form file Fi specified by the compressed file form file specifying unit 2104 from the compressed form file group F.
  • the compressed document file F1 with file number 1 is extracted.
  • the determination unit 2106 includes a search keyword (hereinafter, “compressed keyword”) compressed by the search keyword compression unit 2102 in the compressed form file Fi extracted by the compression form file extraction unit 2105.
  • compressed keyword a search keyword
  • the determination unit 2106 includes a search keyword (hereinafter, “compressed keyword”) compressed by the search keyword compression unit 2102 in the compressed form file Fi extracted by the compression form file extraction unit 2105.
  • the determination is made for each compressed block data in the compressed document file Fi. [0149] If the determination result is inconsistent, it can be seen that the compressed keyword form file Fi does not contain the search keyword. On the other hand, if the determination results are the same, it can be seen that the compressed form file Fi contains the search keyword.
  • the compressed key form file F1 includes the search keywords “withdrawal slip”,!, And the character string.
  • the block decompression unit 2107 decompresses only the compressed block data of the compressed document file Fi determined to be identical by the determination unit 2106.
  • the determination unit 2106 and the block extension unit 2107 can make a determination as the compressed document file Fi. If there is a mismatch, the compressed document file Fi is removed from the search candidates before decompressing, and the matched document is detected. Only files can be stretched. Also, in the block decompression unit 2107, if the extended form file fi contains continuous character external character data, the continuous character Z external character replacement table 640 decrypted by the decryption unit 1801 is used to convert the continuous character external character data. Replace with the original consecutive data.
  • the character string comparison unit 2108 compares the character string in the block data expanded by the block expansion unit 2107 with the search key word input by the search keyword input processing unit 2101.
  • the file structure data specifying unit 2109 is the file of the form file fi to which the page number j of the form data gj and the form data g j belong. Specify the number i.
  • the search candidate list display unit 2110 edits the page list data 400, and out of the file list in the file configuration data 300, the character string comparison unit 2108 uses the page number j of the form data gj and the form data concerned.
  • the file list in which the file number i of the form file fi to which gj belongs is specified is displayed on the display 108 shown in FIG. 1 as a search candidate list (for example, a list of headwords).
  • the search candidate selection unit 2111 receives a search candidate selected by the user's operation from the search candidate list displayed by the search candidate list display unit 2110.
  • the above-described full-text search character string mismatch verification method does not decompress compressed data, but compresses the search keyword and performs mismatch verification.
  • FIG. 23 is an explanatory diagram showing the mismatch matching process in the full-text search execution unit 624.
  • the search keyword 2301 input by the search keyword input processing unit 2101 shown in FIG. 21 is compressed by the search keyword compression unit 2102 into an X-bit compression keyword 2302 using the Huffman tree 1810 and set in the register Ra. .
  • the compressed block data 2312 in the specific compressed file form file (compressed form file) 2311 extracted by the compressed file form extracting unit 2105 is set in the register Rb and set in the register Ra. Compare with compressed keyword 2302. Specifically, the compressed block data 2312 shifted by a predetermined byte is set in the register Rb and sequentially compared with the compressed keyword 2302.
  • the comparison result 2320 is output by the XOR operation of the compressed keyword 2302 and the compressed block data 2312. Then, a bit string 2330 of the last 8 bits (indicated by shading in FIG. 23) in the comparison result 2320 is extracted, and mismatch verification is performed.
  • FIG. 24 is a chart showing a shift operation of the compressed block data shown in FIG. In this shift operation, the collating interval is shifted according to the compressed size (compressed keyword length) of the compressed keyword 2302. If the compressed keyword length is 16 bits or more, the verification judgment bit length is 8 bits. If the compression keyword length is 11 bits or more and 15 bits or less, adjust the last bit as 3 to 7 bits. Also, when the compressed keyword length is 10 to 10 bits, the search keyword 2301 is verified after decompression without performing the compression format mismatch verification.
  • FIG. 25 is an explanatory diagram showing a collation prediction table generation process.
  • the compression keyword 2302 is set in the register Ra.
  • “*” (Last 8 bits) in the register Ra is a bit in which the compressed keyword 2302 is not held.
  • register R The shift keyword 2500 is generated by shifting the compressed keyword 2302 in a bit by bit. That is, since the compressed keyword 2302 has n bits, the shift table 2500 is generated from the shift bit string from the shift number 0 bit to X ⁇ 8 bits.
  • the compression keyword 2302 set in the register Ra and the shift table 2500 are collated and predicted.
  • the XOR table 2501 is generated by performing the XOR operation. In each shift bit string of the XOR table 2501, “*” is included and V, and the 17-bit power is also shifted to the corresponding bit string corresponding to the 8-bit partial bit string (shown in shaded in the figure) up to the 24th bit.
  • the partial determination table 2502 is generated by concatenating the numbers.
  • a collation prediction table 2503 for high-speed determination is generated.
  • the collation prediction table 2503 refers to the partial determination table 2502 and assigns the shift number to the 8-bit address.
  • “64” is set in the bit string, and the partial determination table 2502 is referred to at the time of collation.
  • “1” is assigned as the number of shifts to addresses that do not match partial determination table 2502.
  • the mismatch prediction is executed by comparing the matching prediction table 2503 with the bit string 2330 for mismatch matching.
  • FIG. 26 is an explanatory diagram showing the all-bit mismatch verification process.
  • the divisor and remainder are calculated by dividing the current shift number by 8. Then, by adding the divisor to the current pointer of the specific compressed form file 2311, the compressed block data 2312 corresponding to the pointer after the addition is reacquired and set in the register Rb. Then, the set compressed block data 2312 is shifted by the remaining value.
  • the compression keyword 2302 is set in the register Ra.
  • the mask of the bit that is not subject to verification is turned OFF, and both registers Ra and Rb are compared. Then, when all bits match, the matched address is recorded.
  • FIG. 27 is a block diagram showing a detailed functional configuration of the numerical search execution unit 625 in the search execution unit 622. As shown in FIG. The same components as those shown in FIG. 21 are denoted by the same reference numerals, and the description thereof is omitted.
  • the numerical value search execution unit 625 includes an acquisition unit 2701, a numerical value compression unit 2702, and a detection unit.
  • Output unit 2703, intermediate numerical value group determination unit 2704, appearance map extraction unit 2705, abbreviated map setting unit 2706, lower limit Z upper limit map generation unit 2707, identification unit 2708, compressed information search unit 2 709, A boundary condition determination unit 2710 and a determination unit 2711 are included.
  • the acquisition unit 2701 acquires a numerical value that defines the boundary of an arbitrary numerical range.
  • the numerical range is a section specified by a numerical value that defines the boundary and an operator that defines the boundary.
  • the numerical value that defines the boundary is a numerical value that defines the lower limit of the numerical range (lower numerical value) N X and a numerical value that defines the upper limit (upper numerical value) Ny.
  • An operator that defines a boundary is an operator that indicates an inequality sign such as “ ⁇ ”, “ku”, “”, or “>”, and is a boundary condition for a lower limit value or an upper limit value.
  • the acquisition unit 2701 can set the following numerical range that the numerical value N can take by user input, operator initial setting, and the like.
  • the numerical value compression unit 2702 compresses the numerical value acquired by the acquisition unit 2701. Specifically, it is a feeder compression code that identifies a numerical value, a full-width / half-width bit compression code, a comma presence / absence bit compression code, a digit compression code, a numeric compression code, and a decimal point. Is included, it is compressed into compressed information composed of a decimal compression code.
  • the numbers in each compressed form file Fi are also compressed according to the same rule.
  • the full-width and half-width bits, compression code, and comma presence / absence bit are uniformly set to “0” (OFF).
  • intermediate numerical value group determination unit 2704 determines whether or not the intermediate numerical value group is included in the numerical value range acquired by acquisition unit 2701.
  • the intermediate numerical group is a numerical group including the lower limit value of the numerical range (hereinafter referred to as “lower limit numerical group”) and a numerical group including the upper limit value of the numerical range (hereinafter referred to as “upper limit numerical group”). It is a group of numerical values that exist between. If the number of digits in the lower limit value group and the upper limit value group are different, it is determined that the intermediate value group exists. Also, even if the number of digits is the same, if the leading digits are different, it is determined that an intermediate numerical value group exists.
  • the lower limit numerical group is 4 digits 'numerical group with the first digit 3 and the upper numerical value group is 5 digits' numerical value group with the first digit 1 Are detected.
  • the intermediate numerical value group there are 4 digits 'the numerical value group with the first digit 4 to 4 digits' the numerical value group with the first digit 9 within the numerical value range.
  • the lower limit numerical group is 4 digits 'numerical group with the first digit 3 and the upper numerical value group is 4 digits' numerical value group with the first digit 4 Are detected. In this case, there is no intermediate numerical value group.
  • the lower limit value group is 4 digits • The first digit number 3 group and the upper limit value group 4 digits' the first digit 3 number A group is detected. That is, the lower limit numerical value group and the upper limit numerical value group are the same numerical value group. Again, there is no intermediate value group.
  • the appearance map extraction unit 2705 extracts an appearance map corresponding to the number of digits and the first digit detected by the detection unit 2703 from the appearance map of the numerical value group. For example, detection If part 2703 detects the first digit “1” with the digit number “5”, it extracts the appearance map for the numerical group of the five digit “first digit 1”. If an intermediate numerical value group exists, an appearance map related to the intermediate numerical value group is also extracted.
  • the omitted map setting unit 2706 sets an omitted map based on the appearance map related to the intermediate numerical value group.
  • the abbreviated map is a map for calculating the logical product of the appearance map for the lower limit numerical value group and the appearance map for the upper limit numerical value group.
  • the abbreviation map itself represents the presence or absence in the form file fi by the bit ONZOF F, as in the appearance map 503 for the numerical group. Therefore, the form file fi corresponding to the bit that is turned ON indicates that a numerical value in the intermediate value group exists, and the form file fi corresponding to the bit that is turned OFF This means that there is no numerical value in the intermediate value group.
  • the abbreviated map calculates the intermediate result map by calculating the logical sum of the appearance maps related to the intermediate numerical value group, and inverts the bits in the intermediate result map to thereby convert the abbreviated map.
  • an abbreviated map can be set by inverting the bits in the appearance map. If there is no appearance map related to the intermediate value group, an abbreviated map with all bits OFF is set.
  • the lower limit Z upper limit map generation unit 2707 generates a lower limit map and an upper limit map.
  • the lower limit map is a map obtained by the logical product of the appearance map (lower limit value group map) related to the lower limit numerical value group and the abbreviation map
  • the upper limit map is the appearance map (upper limit value value related to the upper limit numerical value group). This is a map obtained by the logical product of the numerical group map) and the abbreviated map.
  • the lower limit map becomes a map indicating whether or not only the numerical value in the lower limit numerical value group exists
  • the upper limit map becomes a map indicating whether or not only the numerical value in the upper limit numerical value group exists.
  • the specifying unit 2708 includes a compressed key search target file in which a numerical value within a numerical value group satisfying the number of digits and the first digit detected by the detection unit 2703 exists from among a plurality of compressed search target files. Is identified. Specifically, the form file fi corresponding to the bit that turns ON among the bits in the lower limit map is specified, and the compressed form file Fi is extracted from the compressed form file group F. Similarly, of the bits in the upper limit map, it will be ON. The form file fi corresponding to the existing bit is identified, and the compressed form file Fi is extracted from the compressed form file group F.
  • the compression information search unit 2709 searches the compressed form file Fi specified by the specification unit 2708 for compression information related to the numerical value in the file.
  • Compressed form file In fi the numerical value in the file consists of feeder compression code, full-width and half-width flag compression code, comma flag compression code, digit compression code, numeric compression code for each digit, etc. Compressed by information.
  • the compression information search unit 2709 extracts the compression information related to the numerical value in the file by detecting the compression information related to the numerical value in the file (for example, only the compression code of the feeder).
  • the boundary condition determination unit 2710 compares the numerical compression information defining the boundary compressed by the numerical compression unit 2702 with the numerical compression information in the file searched by the compression information search unit 2709. Based on the above, it is determined whether the numerical value in the file satisfies the boundary condition with the numerical value that defines the boundary.
  • the boundary condition is a condition that expresses a magnitude relationship with a numerical value that defines the boundary, such as (numerical value that defines the boundary).
  • the numerical values that are the compression sources are compared.
  • the compression numbers of the first digits are compared to compare the numerical values that are the compression sources.
  • the numbers of the compression sources are compared in order by comparing the next digits.
  • the determination unit 2711 selects the compressed file search target file Fi specified by the specifying unit 2708 based on the determination result determined by the boundary condition determination unit 2710 within the numerical range. Decide on a file that contains numbers. Specifically, if the numerical value in the file satisfies the boundary condition with the value that defines the boundary, the compressed search target file Fi specified by the specifying unit 2708 is determined to be a file that includes a numerical value within the numerical range. . In this determination process, the lower limit comparison result map and the upper limit comparison result map represented by the bit string corresponding to the form file are used as in the case of the appearance map. Set all bits to OFF as the initial setting.
  • the determination unit 2711 calculates the logical sum of the lower limit comparison result map, the upper limit comparison result map, and the intermediate result map that are finally obtained, and the intermediate result map. It is possible to determine the compressed document file Fi having a numerical value within the numerical range.
  • the file configuration data specifying unit 2109 is a file that satisfies the boundary condition with the numerical value that defines the boundary when the determining unit 2711 determines the compressed document file Fi that has a numerical value within the numerical range.
  • the page number j of the form data gj in which the numerical value exists and the file number i of the form file fi to which the form data gj belongs are specified.
  • FIG. 28-1 to FIG. 28-4 are explanatory diagrams showing a comparative example of the numerical value range.
  • a numerical range “3,700 yen or more and 6,300 yen or less” is given, an example of searching a compressed form file Fi that includes the amount (numerical value) in the range specified in the numerical range. It is.
  • the numerical information “3,700 yen” for the lower limit numerical value and the numerical information “6,300 yen” for the upper limit numerical value are both compressed by the compression process shown in Figure 16-3.
  • 4-digit 'first digit 3 map M43 indicates the presence or absence of a form file fi with a 4-digit' first digit 3 number.
  • 4 digit 'first number 4 map M44' indicates whether or not the form file fi has a 4 digit 'first number 4' value.
  • 4 digits ⁇ Leading number 5 Map M45 indicates the presence or absence of a form file fi with a 4 digit 'leading number 5'.
  • 4 digits' first number 6 map M46 indicates the presence / absence of form file fi with 4 digits / first number 6!
  • 4 digits ⁇ Leading number 3 map M43 and 4 digits ⁇ Leading number 6 map M46 are appearance maps used for size comparison.
  • the intermediate result map MO 1 indicates whether or not the form file fi having numerical values 4000 to 5999 exists. Then, the omitted map M02 is obtained by inverting the bits in the intermediate result map M01.
  • the lower limit map M03 is obtained by taking the logical product of the 4-digit / first digit 3 map M43 obtained in FIG. 28-1 and the abbreviated map M02.
  • the abbreviated map M02 By taking a logical product with the abbreviated map M02, it is possible to exclude form files having numerical values in the intermediate numerical value group.
  • the compressed form file Fi whose bit is ON is extracted.
  • the compressed form file Fi is also searched for the leading force, and the compression code “1011” of the feeder (“x ′ B ′” in FIG. 28-2) is searched.
  • the compression code “1011” of the feeder is searched, the compression information 2801 starting from the compression code “1011” of the feeder is read.
  • the full-width / half-width bit and the comma presence / absence bit are “1”, it is masked by converting to “0”.
  • the converted compressed information is referred to as comparison target compressed information 2810.
  • the comparison target compression information 2810 obtained by compressing the numerical information "3,300 yen” in the compressed document file Fi and the lower limit compression information obtained by compressing the lower limit numerical information "3,700 yen” 2802 Compare and. First, the comparison of the compression target 2810 and the lower limit compression information 2802 with the feeder, the number of digits, and the compression code of the first digit is performed. Any one at this stage If the compression codes do not match, the next feeder in the compressed form file Fi is searched.
  • the comparison target compression information 2810 has a numerical value of at least four digits. If it is understood that the compression format is used, and if the leading numbers match, it is found that the comparison target compression information 2810 is a compression format having a numerical value of at least the leading number “3”. Therefore, if the feeder, the number of digits, and the compression code of the first digit all match, the size of the numeric compression code in the same digit is compared.
  • the numerical information “3,700 yen” of the lower limit numerical value is compared with the numerical information “3,300 yen” in the file of the comparison compression information 2802 by comparing the compression numbers of the second number. It can be seen that is large.
  • the bit corresponding to the compressed form file Fi remains “0”.
  • the compressed form file is displayed in the lower limit comparison result map M04. The bit corresponding to Fi is set to “1”.
  • the lower limit comparison result map M04 can be obtained.
  • the form file fi can be searched in the compressed format.
  • the upper limit map M05 is obtained by taking the logical product of the 4-digit / first digit 6 map M46 and the abbreviated map M02 obtained in FIG. 28-1.
  • the abbreviated map M02 By taking a logical product with the abbreviated map M02, it is possible to exclude form files having numerical values in the intermediate numerical value group.
  • this upper limit map M05 a compressed form file Fi whose bit is ON is extracted.
  • the compressed form file Fi is also searched for the leading force, and the compression code “1011” of the feeder (“x ′ B ′” in FIG. 28-3) is searched.
  • the compression information 2803 starting from the compression code “1011” of the feeder is read.
  • the full-width / half-width bit and the comma presence / absence bit are “1”, it is converted to “0”. To mask.
  • the converted compression information is referred to as comparison target compression information 2830.
  • the comparison target compression information 2830 obtained by compressing the numerical information "6, 200 yen” in the compressed document file Fi and the upper limit compressed information 2804 obtained by compressing the upper limit numerical information "6, 300 yen” 2804 Compare and. First, the comparison of the compression information 2830 and the upper limit compression information 2804 with the feeder, the number of digits, and the compression code of the first digit is performed. If any one of the compression codes does not match at this stage, the next feeder in the compressed form file Fi is searched.
  • the comparison target compression information 2830 has a numeric value of at least four digits. If it is understood that the compression format is used, and if the first digits match, it is found that the comparison target compression information 2830 is a compression format having a numerical value of at least the first digit “3”. Therefore, if the feeder, the number of digits, and the compression code of the first digit all match, the size of the numeric compression code in the same digit is compared.
  • the numerical information "6,300 yen" of the upper limit numerical value is larger than the numerical information "6,200 yen” of the comparison target compression information 2830 by comparing the compression codes of the second number I understand.
  • the bit corresponding to the compressed form file Fi is set to “1” in the upper limit comparison result map M06.
  • the upper limit comparison result map M06 can be obtained.
  • the form file fi can be searched in the compressed form.
  • an integrated result map M07 is obtained by taking the logical sum of the lower limit comparison result map M04, the intermediate result map M01, and the upper limit comparison result map M06.
  • the form file fi including the numerical information in the numerical range “3,700 yen or more and 6,300 yen or less” can be specified in the compressed form.
  • the lower limit value and upper limit value specifying the numerical range have the same number of digits and the first digit number is different.
  • the upper limit number has a large number of digits (or the lower limit number has a small number of digits!)
  • the comparison can be made in the same way. For example, if the numerical value range is ⁇ 3,700 yen or more and 64,000 yen or less '', 4 digit first digit 4 map to 4 digit first digit 9 map and 5 digit first digit 1 map to 5 digit first digit up to 5 map May be extracted as an appearance map of the intermediate numerical value group.
  • the intermediate result map M01 is Since it does not exist, all bits of the abbreviated map M02 are turned OFF. Even when the integrated result map M07 is obtained, the intermediate result map M01 does not exist. Therefore, the integrated result map M07 is calculated by the logical sum of the lower limit comparison result map M04 and the upper limit comparison result map M06.
  • FIG. 29 is a block diagram showing a detailed functional configuration of the search result display unit 623 shown in FIG.
  • the search result display unit 623 includes a reading unit 2901, a file decompression unit 2902, and a final display display 2903.
  • the reading unit 2901 reads the item data that is the search candidate selected by the search candidate selection unit 2111 from the compressed key form file Fi of the compressed key form file group F.
  • the file decompression unit 2902 decompresses the item data read by the readout unit 2901 using the Huffman tree 1801.
  • the file display unit 2903 displays the item data expanded by the file expansion unit 2902 as a search result.
  • FIG. 30 is a flowchart showing an information search processing procedure of the information search apparatus 600 according to the embodiment of the present invention.
  • the numerical value / character appearance frequency management data generation unit 612 executes numerical value / character appearance frequency management data generation processing (step S 3001).
  • the compressed Z cipher key 613 executes the compressed Z cipher key process (step S300).
  • search initialization unit 621 executes search initialization processing (step S300).
  • search execution unit 622 executes search processing (step S3004).
  • search result display section 623 executes search result display processing (step S30 05).
  • the search candidate (item data) selected from the search candidate list is also read out from the compressed form file F and decompressed by the Huffman tree 1810, so that the full text of the item data is displayed as the search result. can do.
  • FIG. 31 is a flowchart showing a detailed processing procedure of the numerical value / character appearance frequency management data generation process (step S3001) shown in FIG.
  • initialization processing is executed (step S3101). Specifically, a tabulation area corresponding to the 8 and 16-bit numeric value character data, consecutive data, and binary data is secured, and the appearance frequency and appearance map segments are initialized. Also, set the numerical value character data code and initialize various counters.
  • step S3102 numerical value 'character appearance frequency tabulation processing is executed (step S3102).
  • the detailed processing procedure of the numerical value 'character appearance frequency totaling process will be described later.
  • step S3103 the area of the numerical value 'character appearance frequency management data 500 is secured and the area is initialized (step S3103), and the 8- and 16-bit numerical value' character data, continuous character data, The binary data character code and appearance frequency are set (step S3104).
  • step S3105 the segments of the appearance map are connected.
  • step S3106 By sorting the continuous character data in the continuous character area in order of appearance frequency (step S3106), 256 types of continuous character data are selected. As a result, continuous character data can be reduced.
  • continuous character Z external character replacement is performed and a continuous character Z external character replacement table 640 is generated (step S3107).
  • the consecutive character data and the consecutive character Z extended character replacement table 640 are generated by replacing the consecutive character data with the external character data in the order of appearance frequency.
  • low-appearance continuous character data that is, continuous character data that has not been replaced with external characters
  • low-appearance continuous character data is decomposed into single character data, and correction is performed so as to allocate to the corresponding character region (step S3108). That is, continuous character data with a low appearance frequency is divided into phonetic character data, and the frequency of the character data is added and the OR operation of the appearance map is executed.
  • step S3109 numerical value / character data is sorted in the order of appearance frequency (step S3109), and the numerical value 'character data with zero frequency is cut to combine consecutive character data and binary data (steps S3110), the numerical value / character appearance frequency management data 500 obtained by this combination is output to the final (step S3111).
  • step S3109 numerical value / character data is sorted in the order of appearance frequency
  • step S3110 numerical value 'character data with zero frequency is cut to combine consecutive character data and binary data
  • step S3111 the numerical value / character appearance frequency management data 500 obtained by this combination is output to the final (step S3111).
  • FIG. 32-1 is a flowchart (first half) showing the detailed processing procedure of the numerical value 'character appearance frequency totaling process (step S3102) described above.
  • the first form file fO is opened (step S3201).
  • the opened form file force is also extracted sequentially. If the extracted data is binary data (step S3202: Yes), add the appearance frequency of the binary data and set the bit corresponding to the open file in the binary data appearance map to ⁇ 1 '' Further, a byte counter is added (step S3203). Then, Figure 32-2 [Step S 3211 shown here] moves on.
  • Step S3202 it is determined whether or not it is a numerical value (Step S3204). For example, if it is a numeric string that also has only power, it is determined as a numerical value. In addition to numbers, “,” (comma) and “-” (decimal point) are also included in the numeric string, and are determined to be numerical values.
  • step S3204 If it is a numerical value (step S3204: Yes), the appearance frequency of the numerical value is added, the bit corresponding to the open file in the numerical appearance map is set to "1", and the byte The counter is added (step S3205). Then, the process proceeds to step S 3211 shown in FIG.
  • step S3204 if the extracted data is not a numerical value (step S3204: No), it is determined whether or not it is continuous character data (step S3206). If it is continuous character data (step S3206: Yes), the appearance frequency of the continuous character data is added, the bit corresponding to the open file in the appearance map of the continuous character data is set to “1”, and The byte counter is added (step S3207). Then, the process proceeds to step S 3211 shown in FIG.
  • step S3206 if the extracted data is not continuous character data (step S3206: No), it is determined whether or not it is kanji data (step S3208). If it is not vague character data (step S3208: No), the data is phonetic character data. The appearance frequency of the phonetic character data is added, the bit corresponding to the open file in the appearance map of the phonetic character data is set to “1”, and the Neut counter is added (step S3209). Then, Fig. 32-2 [Step S 3211 shown here] moves on.
  • step S3208 Yes
  • the frequency of appearance of the kanji data is added to the open file in the appearance map of the kanji data.
  • the corresponding bit is set to “1” and the Neut counter is calorie-calculated (step S3210).
  • step S3211 shown in Fig. 32-2 proceeds.
  • FIG. 32-2 is a flowchart (second half) showing the detailed processing procedure of the numerical value / character appearance frequency totaling process (step S3202).
  • the segment counter of the segment of the appearance map is added (step S3211), and it is determined whether or not the segment end force is not valid, that is, whether or not the segment has been aggregated (step S3212).
  • segment aggregation is completed (step S3212: Yes)
  • the segment of the appearance map is added to the file and the segment counter is cleared (step S3213). Then, the process proceeds to step S3214.
  • step S3212 determines whether or not the block has ended. If segment summarization has not ended (step S3212: No), or after step S3213, whether or not the block has ended, for example, the sum of numerical values' character data has reached 400 00 characters It is determined whether or not it is correct (step S3214).
  • step S3214 Yes
  • the file number i of the form file fi having the block data, the block number m of the block data, the offset, the number of characters, and the block information having the length force are displayed.
  • step S3214 determines whether or not the file has ended, that is, whether or not the aggregation of the currently open form file fi has ended.
  • Step S3216 If the tabulation of the currently open form file fi has been completed (step S3216: No), return to step S3202 shown in Figure 32-1 to extract the next data, and the type of the extracted data Are identified and aggregated (steps S3202 to S3210).
  • step S3216 tabulation of the currently open form file is completed. If so (step S3216: Yes), the totaling power is rejected, that is, the currently opened form file fi is closed (step S3217). Thereafter, it is determined whether or not the aggregation from all the form files f0 to fn is completed (step S3218).
  • step S3218 Yes
  • the segment of the appearance map 510 is additionally output to the file (step S3220), and the process proceeds to step S3203. This completes the series of processing.
  • FIG. 33 is a flowchart showing a detailed processing procedure of the compressed Z encryption process (step S3002) shown in FIG.
  • numbers the appearance frequency of numbers, decimal points, and feeders
  • step S3302 the appearance frequency of other character data
  • step S33 03 the numerical value / character data in the mixed area 812 are sorted in the order of appearance frequency.
  • the numerical value / character data with a low appearance frequency is decomposed into 8 bits and added to the appearance frequency of the corresponding binary data (step S3304).
  • the numeric value character data, consecutive character data, and binary data in the mixed area 812 are concatenated and sorted in the order of appearance frequency (step S3305).
  • the occurrence probability is calculated based on the corrected appearance frequency for each sorted numerical character data (step S3306). Based on this occurrence probability, an 8-, 16-bit numerical value 'character A Huffman tree common to the data is generated (step S3307).
  • step S3308 the compression process of each form file is executed (step S3308). A specific procedure of this compression processing will be described later with reference to FIG.
  • the numerical value 'character appearance frequency management data 500 is encrypted (step S3309). Specifically, the encryption area (numerical / character data and appearance frequency area) of the numerical value 'character appearance frequency management data 500 is encrypted by exclusive OR (XOR) using the master key.
  • the consecutive character Z external character replacement table 640 is encrypted (step S3310). Specifically, the encryption key area of the consecutive character Z external character replacement table 640 is encrypted by exclusive OR (XOR) using the master key. Then, the process proceeds to the search initialization process (step S3003), and the series of processes ends.
  • FIG. 34 is a flowchart showing a detailed processing procedure of the compression processing shown in step S3308 of FIG.
  • the data in the form file fi is sequentially read, and it is determined whether or not the read data is a feeder (step S3403).
  • Step S3403 If it is determined that it is a feeder (Step S3403: Yes), the consecutive numbers following the feeder are read as numerical values (Step S3404), and full-width / half-width and numeric digits are detected (Step S3405). . Then, numerical compression by the Huffman tree is executed (step S3406), and the process proceeds to step S3408.
  • step S3403 determines whether it is a feeder (step S3403: No)
  • the data is other character data, so character data compression is executed using the Huffman tree (step S3407), and step S3408.
  • step S3408 it is determined whether or not compression in the block has been completed (step S3408). If compression has not been completed (step S3408: No), the process returns to step S3403 to read the next data. On the other hand, if compression is complete (step S3408: Yes), it is determined whether there is an unprocessed block (step S3409).
  • step S3409 If there is an unprocessed block (step S3409: Yes), the unprocessed block is read (step S3410), and the process returns to step S3403 to read data. On the other hand, if there is no unprocessed block (step S3409: No), the file number i is incremented (step S3411), and it is determined whether i> n (step S3412).
  • step S3412 If i> n is not satisfied (step S3412: No), the process returns to step S3402 to block the next form file fi. On the other hand, if i> n (step S3412: Yes), the process proceeds to step S3309 shown in FIG. Thereby, a series of processes in the compression process is completed. Next, a detailed processing procedure of the search initialization process (step S3003) shown in FIG. 30 will be described.
  • FIG. 35 is a flowchart showing a detailed processing procedure of the search initialization process (step S3003) shown in FIG.
  • Step S3501 the search initialization process is awaited (Step S3501: No). If it is started (Step S3501: Yes), the encrypted encryption value encrypted in the compressed Z encryption process is'
  • the character appearance frequency management data 650 is decrypted (step S3502). Specifically, the encryption key area (numerical value 'character data and appearance frequency area) of the encryption key value' character appearance frequency management data 650 is exclusive ORed (X OR).
  • the cipher key sequence Z external character replacement table 660 is decrypted (step S3503). Specifically, the encryption key area of the encryption key sequence Z external character replacement table 660 is decrypted by exclusive OR (XOR) using the master key when the key is encrypted.
  • XOR exclusive OR
  • step S 3504 processing similar to the processing from step S3401 to S3405 shown in the compression Z encryption processing is executed. That is, the numerical value / character data is sorted in the order of appearance frequency (step S 3504), and the numerical value / character data having a low appearance frequency is divided into 8 bits and added to the appearance frequency of the corresponding binary data (step S3505).
  • step S3506 the numerical value 'character data, consecutive characters data, and binary data are concatenated and sorted in order of appearance frequency.
  • step S3507 the occurrence probability is calculated based on the appearance frequency (step S3507), and based on this occurrence probability, a common Huffman tree is generated for the 8- and 16-bit numeric character data. (Step S3508).
  • step S3509 the setting process of the appearance map 510 is executed (step S3509). Specifically, the areas of the first and second point correspondence tables are secured, the appearance order of each character data is set in the first point correspondence table, and the appearance order of each numerical data is set. Set to the second point correspondence table, memory expansion of the appearance map of the decoded numeric value / character appearance frequency management data 500, the appearance map and the first point correspondence table and the second point correspondence table Execute the link. Thereafter, the process proceeds to the search process (step S3004), and the series of processes ends. [0251] Next, a detailed processing procedure of the search processing (step S3004) shown in Fig. 30 will be described. FIG.
  • step S3004 is a flowchart showing a detailed processing procedure of the search processing (step S3004) shown in FIG.
  • the search mode screen is first called (step S3601), and the selection of the numerical search mode or the character search mode is awaited (step S3602).
  • step S3602 When the numeric search mode is selected (step S3602: Yes), the process proceeds to step S4001 shown in FIG. On the other hand, when the character search mode is selected (step S3602: No), an input of a search keyword is accepted (step S3603).
  • step S3604 If the search keyword is not plural (step S3604: No), the process proceeds to step S3606. On the other hand, when there are a plurality of search keywords (step S3604: Yes), the character strings of the respective keyword are connected (step S3605), and the process proceeds to step S3606.
  • Step S3606 No
  • the process proceeds to Step S3608.
  • step S3606 Yes
  • the continuous character Z character replacement table 640 is used to replace the continuous character data with two characters of external character data (step S3607). Transition.
  • step S3608 the search keyword is decomposed into single character data, and the presence / absence map power reads the presence / absence bit string in each form file of each character data (step S3608). Then, the compressed form file is specified (squeezed) by the logical product of the presence / absence bit strings of each character data (step S3609). Also, the search keyword is compressed with the Huffman tree generated in the search initialization process (step S3003) (step S3610).
  • step S3611 a collation prediction table generation process
  • step S3612 the file counter is initialized (step S3612).
  • step S3613 the compressed document file specified in step S3609 (hereinafter referred to as "specific compressed document file”) is opened (step S3613), and the specified compressed document file opened.
  • step S3614 a mismatch determination process with the compressed keyword is performed (step S3614). This mismatch determination process will be described later with reference to FIG.
  • step S3615: Yes when it is determined that all the compressed block data are mismatched (step S3615: Yes), the process proceeds to step S3618.
  • step S3615: No the compressed block data determined to match is decompressed using the Huffman tree (step S3616). Then, the expanded block data is compared with the search keyword, the file number and anchor of the item data matching the search keyword are recorded (step S3617), and the process proceeds to step S3618.
  • step S3618 the open specific compressed form file is closed (step S3618), and the file counter is updated (step S3619). If it is determined that there is an unprocessed specific compressed file form due to the file counter update (step S3620: Yes), the process moves to step S3613 and the next specific compressed file file is opened. To do.
  • step S3620 if it is determined that there is no unprocessed specific compressed form file (step S3620: No), a search candidate list is displayed (step S3621), and a user-selection input is awaited. (Step S3622), the process proceeds to the search result display process (Step S3005), and the series of processes ends.
  • the data is blocked according to the number of character data, not the size (capacity), and when the frequency of occurrence of each character data in the form file is counted, the type of character data (8-bit code, 16-bit code or (32-bit code) can be determined and the appearance frequency can be tabulated.
  • 8-bit code character data such as English character data in English-Japanese dictionaries
  • 16-bit code character data such as Ox 'FF * *
  • Huffman compression is performed. This makes it possible to perform efficient compression by distinguishing it from 8-bit code character data with a low appearance rate.
  • Non-character data such as pointers are random values, so they are replaced with 8-bit codes. To do. Also, to reduce the size of the Huffman tree, character data with a low appearance frequency of 16-bit code is divided and replaced with 8-bit code character data. As a result, efficient compression can be performed.
  • the numerical value / character appearance frequency management data 500 which is the generation source of the Huffman tree for compression, or a part thereof is encrypted.
  • the content and the Huffman tree for content compression are not directly encrypted, but the generation source of the Huffman tree is encrypted, so that the security can be improved.
  • the number of files to be opened and closed can be reduced by continuous character data, and the speed of full-text search can be increased by reducing the character string comparison area. Furthermore, full-text search can further improve search speed by comparing character strings after decompression without changing the external character data.
  • FIG. 37 is a flowchart showing the collation prediction table generation processing procedure.
  • the total number of shifts of the compressed keyword 2302 is calculated (step S370 Do, specifically, the compressed keyword length and the bit length and force of the register Ra are not stored in the compressed keyword 2302 (FIG. 25). "*") Is calculated as the total number of shifts.
  • step S3702 the collating interval (number of bytes) is calculated with reference to the shift operation chart shown in FIG. 24 (step S3702).
  • step S3703 the compressed keyword 2302 is shifted by 1 bit for the total shift to create the shift table 2500 (step S3703).
  • An XOR operation is performed on each bit string of the shift table 2500 and the compression keyword 2302 to create an XOR table 2501 (step S3704).
  • step S3705 the created XOR table 2501 and a partial determination table 2502 that also includes the number of shifts of each bit string constituting the XOR table 2501 are created.
  • the collation prediction table 2503 is created using the partial determination table 2502 (step S3 706), and the process proceeds to step S3612.
  • FIG. 38 is a flowchart showing the mismatch determination processing procedure between the compressed block data and the compressed keyword.
  • the compression keyword 2302 is set in the register Ra (step S3801).
  • a collation interval (number of bytes) for shifting the compressed block data 2312 is set (step S 3802), and the pointer of the specific compressed form file 2311 is initialized (step S3803).
  • the compressed block data 2312 is set in the register Rb according to the current pointer (step S3804).
  • the register Ra and the register Rb are XORed (step S3805), and the lower 8-bit bit string 2330 is extracted (step S3806).
  • the extracted lower 8-bit bit string 2330 and the collation prediction table 2503 are collated, and the bit string shift number that matches the lower 8-bit bit string 2330 in the collation prediction table 2503. Is detected, and it is determined whether or not the detected number of shifts is “1”, that is, whether or not they are inconsistent (step S3807).
  • step S3807: Yes If the number of shifts is “ ⁇ 1” (step S3807: Yes), the pointer of the specific compression form file 2311 is added for the collation interval (step S3808). Then, it is determined whether or not there is compressed block data 2312 (step S3809). If there compressed block data 2312 force s (step S3809: No), the flow returns to step S3804. On the other hand, if the compressed block data 2312 is not strong (step S3809: Yes), the process proceeds to step S3615. From this loop of steps S3804 to S3809: No, it is possible to collate a mismatch at a high speed and to realize a high speed search speed.
  • step S3807 if the shift number is not "1" (step S3807: No), if the shift number is 0 to 63 (step 33810: 0 to 63), that is, a part If there is a match, the number of shifts is acquired (step S3811), and all bit mismatch verification processing is executed (step S3812). The all bit mismatch verification process (step S3812) will be described later. Then, the process proceeds to step S3808. [0277] Also, in step S3810, when the number of shifts is 64 (step S3810: 64), that is, when there is an overlapping partial match, the pointer of partial determination table 2502 is initialized (step S3813), and the current pointer is set.
  • step S3814 The XOR result of the corresponding partial determination table 2502 is acquired (step S3814). Then, it is determined whether or not the corresponding bit string matches the XOR result of the partial determination table 2502 corresponding to the current pointer (step S3 815). If they do not match (step S3815: No), the process proceeds to step S3818.
  • step S3815 if there is a match (step S3815: Yes), the number of shifts corresponding to the XOR result is obtained from the partial determination table 2502 (step S3816), and the all-bit mismatch check process is executed (step S3817). Since this all-bit mismatch verification process (step S3817) is the same as the all-bit mismatch verification process (step S3812), it will be described later.
  • step S3817 the pointer of the partial determination table 2502 is calculated (step S3818). If the current pointer of the partial determination table 2502 is not the final pointer (step S3819: No), the process returns to step S3814. On the other hand, when the current pointer of the partial determination table 2502 is the final pointer (step S3819: Yes), the process proceeds to step S3808.
  • FIG. 39 is a flowchart showing all-bit mismatch verification processing (step S3812 and step S3817).
  • the divisor and the remainder are obtained by dividing the number of shifts by 8 (step S3901).
  • step S3902 the divisor is added to the current pointer of the specific compressed key form file 2311 (step S3902), and the compressed block data 2312 is set in the register Rb (step S3903). Then, the set compressed block data 2312 is shifted by the remaining value (step S3904).
  • step S3905 the compression keyword 2302 is set in the register Ra (step S3905), and the mask of the bits that are not subject to collation is turned OFF in both the registers Ra and Rb (step S3906). If all the bits match (step S3907: Yes), the matched address is recorded (step S3908), and the process proceeds to step S3808 (also Rakuma S3817). On the other hand, all bit power If not (Step S3907: No), go to Step S3808 (or Step S3817).
  • FIG. 40 is a flowchart showing the numerical value search execution processing procedure in the numerical value search mode that is relevant to the embodiment of the present invention.
  • step S3602 Yes in FIG. 36, the acquisition unit 2701 acquires the numerical range (step S4001).
  • the detection unit 2703 detects the number of digits and the first digit of numerical values (lower limit numerical value, upper limit numerical value) that define the boundary of the numerical value range (step S4002).
  • the numerical value compression unit 2702 compresses the lower limit value and the upper limit value (step S4003).
  • the appearance map extraction unit 2705 extracts appearance maps of the lower limit numerical value group to the upper limit numerical value group from the appearance map 510 (step S4004). Then, the intermediate numerical value group determining unit 2704 determines whether or not there is an intermediate numerical value group (step S4005). If it is determined that there is an intermediate numerical value group (step S4005: Yes), the abbreviated map setting unit 2706 generates an intermediate result map by taking the logical sum of the appearance maps of the intermediate numerical value group (step S4006). Invert all bits in the result map and convert to an abbreviated map (step S4007
  • step S4008 the omitted map is initialized (step S4008). In other words, by turning off all bit strings corresponding to the form files f0 to fn, an abbreviated map of all bits “0” is obtained. Then, control goes to a step S4009. [0288] Thereafter, a lower limit specific Z comparison process (step S4009) and an upper limit specific Z comparison process (step S4010) are executed. Detailed processing procedures of the lower limit specific Z comparison process (step S4009) and the upper limit specific Z comparison process (step S4010) will be described later.
  • the determination unit 2711 determines the compressed form file Fi in which the numerical value within the numerical value range exists (step S4011). After that, the file structure data specifying unit 2109 specifies the page list of the compressed file form Fi including the numerical values in the numerical range (step S4012), and the process proceeds to step S3621 shown in FIG. As a result, the series of procedures for the numerical search execution processing is completed.
  • FIG. 41 is a flowchart showing the lower limit specific Z comparison processing procedure shown in FIG. Figure
  • step S4103 If the bit is OFF (step S4103: No), the process proceeds to step S4110.
  • step S4103 if the bit is ON (step S4103: Yes), the compressed form file Fi is extracted from the compressed form file F (step S4104). Thereafter, it is determined whether or not the compressed form file Fi has the compression information of the numerical value in the file (compression information 2801 in FIG. 28-2) (step S4105).
  • step S4106 When compression information is present (step S4105: Yes), lower limit numerical value comparison processing is executed (step S4106). This lower limit numerical value collating process will be described later with reference to FIG. Then, it is determined whether or not the boundary condition of the lower limit numerical value is satisfied based on the collation result by the lower limit numerical collation processing (step S4107).
  • step S4107 If not satisfied (step S4107: No), the process returns to step S4105. On the other hand, boundary line If the condition is satisfied (step S4107: Yes), it is determined whether or not the i-th bit remains OFF in the lower limit comparison result map M04 (step S4108). If already turned on (step S4108: No), the process proceeds to step S4105.
  • step S4108 if the bit is OFF (step S4108: Yes), the i-th bit is also turned OFF (step S4109), and the process returns to step S4105.
  • step S4105 if there is no uncompressed numerical value compression information in the file (step S4105: No), the process proceeds to step S4110.
  • step S4110 file number i is incremented by one. Then, it is determined whether or not i> n (step S4111).
  • step S4111: No If i> n is not satisfied (step S4111: No), the process returns to step S4103. On the other hand, if i> n (step S4111: Yes), the process proceeds to step S4011 shown in FIG. Thereby, a series of steps of the lower limit specific Z comparison process is completed.
  • FIG. 42 is a flowchart showing the lower limit numerical value collation processing procedure.
  • the full-width half-width bit and comma presence / absence bit in the compression information of the lower limit numerical value and the full-width half-width bit and comma presence / absence bit in the compression information of the numerical value in the file are turned OFF (step S4201).
  • step S4201 the compression information is compared to determine whether or not the feeders have matching power (step S4201). If they do not match (step S4202: No), the process proceeds to step S4107. On the other hand, when the feeders match (step S4202: Yes), it is determined whether or not the force is the same as the number of digits (step S4203).
  • step S4205 it is determined whether or not the number N in the file is greater than or equal to the number N in the lower limit.
  • the reason why the lower limit numerical value is the Nth digit or more as a criterion is that the boundary condition of the lower limit numerical value in the numerical range is “ ⁇ ”, and when the boundary condition is “ ⁇ ”, Number N in the file is the lower limit value N It will be judged whether it is larger than the digit of the digit.
  • Step S4205 If the value is greater than or equal to the Nth digit of the lower limit value! (Step S4205: No), go to Step S4107. On the other hand, if it is greater than or equal to the Nth digit of the lower limit value (step S4 205: Yes), the digit counter N is decremented by 1 (step S4206), and whether or not the digit counter N is N ⁇ 0 is determined. Judgment is made (step S4207). If N ⁇ 0! /, (Step S420 7: No), N—compression code of the first digit and N It is determined whether or not there is a decimal point compression code between the digit compression code (step S4208).
  • step S4208 No
  • step S4208 No
  • Step S4208 Yes
  • step S4207 If N is 0 in step S4207 (step S4207: Yes), the process proceeds to step S4107. Thereby, a series of procedures of the lower limit numerical value collating process is completed.
  • step S4107 shown in Fig. 41 if N is 0 in step S4207 (step S4207: Yes), it is determined that the boundary condition of the lower limit numerical value is satisfied, while step S4202, If NO in step S4203, step S4205, or step S4208, it is determined that the lower limit value boundary condition is satisfied.
  • FIG. 43 is a flowchart showing the upper limit specifying Z comparison processing procedure shown in FIG. 43 will be described with reference to the comparative examples shown in FIGS. 28-1 to 28-4.
  • step S4303 it is determined whether or not the i-th bit in the upper limit map M05 is ON (step S4303). If the bit is OFF (step S4303: No), the process proceeds to step S4310.
  • step S4303: Yes when the bit is ON (step S4303: Yes), the compressed form file Fi is extracted from the compressed form file F (step S4304). Thereafter, it is determined whether or not the compressed form file Fi has the compression information of the numerical value in the file (compression information 2803 in FIG. 28-3) (step S4305).
  • step S4306 If compression information is present (step S4305: Yes), upper limit numerical value collation processing is executed (step S4306). This upper limit numerical value collating process will be described later with reference to FIG. Then, it is determined whether or not the boundary condition for the upper limit numerical value is satisfied based on the collation result obtained by the upper limit numeric collation process (step S4307).
  • step S4307: No If not satisfied (step S4307: No), the process returns to step S4305. On the other hand, if the boundary condition is satisfied (step S4307: Yes), it is determined whether or not the i-th bit remains OFF in the upper limit comparison result map M06 (step S4308). If it is already ON (step S4308: No), the process proceeds to step S4305.
  • step S4308 Yes
  • step S4308 if the bit is OFF (step S4308: Yes), the i-th bit is turned ON by the OFF force (step S4309), and the process returns to step S4305.
  • step S4305 if there is no uncompressed numerical value compression information in the file (step S4305: No), the process proceeds to step S4310.
  • step S4310 file number i is incremented by one (step S4310). Then, it is determined whether i> n is satisfied (step S4311).
  • step S4311 If i> n is not satisfied (step S4311: No), the process returns to step S4303. On the other hand, if i> n (step S4311: Yes), the process proceeds to step S4011 shown in FIG. Thus, a series of steps of the upper limit specifying Z comparison process is completed.
  • FIG. 44 is a flowchart showing the upper limit numerical value collation processing procedure.
  • the full-width / half-width bits and comma presence / absence bits in the upper limit compression information and the numerical value in the file Turn off the full-width and half-width bits and comma presence / absence bits in the reduced information (step S4401).
  • step S4402 the compression information is compared to determine whether or not the feeders have the same force (step S4402). If they do not match (step S4402: No), the process proceeds to step S4307. On the other hand, if the feeders match (step S4402: Yes), it is determined whether or not the powers have the same number of digits (step S4403).
  • step S4405 it is determined whether or not the Nth digit of the numerical value in the file is less than or equal to the Nth digit of the upper limit numeric value.
  • the reason why the criterion is “below the Nth digit of the upper limit value” is that the boundary condition of the upper limit value in the numerical range is “ ⁇ ”, and the boundary condition force ⁇ > ” In this case, it is determined whether the Nth digit of the numerical value in the file is smaller than the Nth digit of the upper limit value.
  • step S4405 If it is not less than the Nth digit of the upper limit value (step S4405: No), the process proceeds to step S4307. On the other hand, if it is less than or equal to the Nth digit of the upper limit (step S4 405: Yes), the digit counter N is decremented by 1 (step S4406), and whether or not the digit counter N is N ⁇ 0 is determined. Judgment is made (step S4407). If N ⁇ 0! /, (Step S440 7: No), N—the compression code of the first digit and N only for the compression information of the upper limit value and the compression value of the value in the file It is determined whether or not there is a decimal point compression code between the digit compression code (step S4408).
  • Step S4408 No
  • the process returns to step S4405.
  • step S4408 Yes
  • step S4307 If N is 0 in step S4407 (step S4407: Yes), the process proceeds to step S4307. Thereby, a series of procedures of the upper limit numerical value collating process is completed.
  • step S4307 shown in FIG. 43 if N is 0 in step S4407 (step S4407: Yes), it is determined that the boundary condition of the upper limit value is satisfied, while step S4402, If it is determined No in step S4403, step S4405, or step S4408, it is determined that the boundary condition of the upper limit numerical value is satisfied.
  • the compressed form specified by the appearance map of the intermediate numerical value group is used. It is possible to detect the presence or absence of a numerical value within the numerical range even before matching the numerical values within the numerical range with the file.
  • the information search program, the recording medium storing the program, the information search method, and the information search apparatus useful for the present invention are useful for searching a numerical range. It contains a number of such numbers and is suitable for content.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

明 細 書
情報検索プログラム、該プログラムを記録した記録媒体、情報検索方法、 および情報検索装置
技術分野
[0001] 本発明は、帳票や治験データベースなどの数値データに対する、数値の一致検索 や範囲検索、および数値抽象化検索の高速ィ匕技術に関する情報検索プログラム、 該プログラムを記録した記録媒体、情報検索方法、および情報検索装置である。 背景技術
[0002] 従来の全文検索では、文字列に対してはインデックスを作成し、検索の高速化が図 られている力 数値は未対応である。さらに、数字文字列の一致比較は行われている 1S 数値としての一致比較が行われていない。たとえば、全角数字の「6850円」や半 角数字の「¥6, 850. -」などの異なる数値表現に対しては、同じ数値に関わらず、 数字文字列の比較では「不一致」と判断される。
[0003] 従来より、帳票システムでは、電子帳簿保存法で数値の範囲指定に適合した数値 の検索機能 (たとえば、下記特許文献 1を参照。)の実装が義務付けられている。また 、電子帳簿はデータ容量の削減とセキュリティのため、圧縮 '暗号化され保管されて いる。
[0004] したがって、保管されている電子帳簿の数値検索には、各帳簿のファイルの伸長と 復号ィヒを行い、各数値データと大小比較を行っており、多大なハードウェア資源と処 理時間が必要となっている。なお、関連する全文検索の方式については以下の 3種 に大別できるが、いずれも数値検索の高速ィ匕が図られていない。
[0005] ·高度インデックス全文検索:インターネットの全文検索では高度なインデックスを利 用することで高速化が図られて 、るが、数値の検索〖こはさらに膨大なインデックスが 必要となるため、高速化の対象外となっている。
[0006] ·簡易インデックス全文検索:漢字に関する文字構成表などの簡易インデックスによ り全文検索の高速ィ匕を行うものであるが、数値に関する高速ィ匕は図られていない。
[0007] ·インデックスレス全文検索:全データに対し、高速な検索エンジンにより文字列照 合を行うものであり、数値の検索の高速化は行われて ヽな 、。
[0008] 特許文献 1 :特開平 3— 19081号公報
発明の開示
発明が解決しょうとする課題
[0009] し力しながら、上述した従来技術における数値の一致検索の場合、非圧縮'非暗号 化の数値の一致検索では、インデックスによる高速ィ匕などは図られておらず、数値の 一致照合に多大な時間を費やしている。また、「6850円」や「¥6, 850. 一」などの 異なる数値表現に対して、「一致」と判定することができない。したがって、簡易インデ ックスを利用した一致検索の高速化、および「一致」の判定方法の改善が課題である
[0010] また、従来技術における数値の一致検索の場合、圧縮 '暗号化された数値の一致 検索では、電子帳簿データなどは保管やセキュリティのため、圧縮 '暗号化されてい るが、伸長と復号ィ匕の後に大小比較をおこなっており、多大な処理時間を費やして いる。したがって、伸長と復号ィ匕の見直しによる速度の改善が課題である。
[0011] また、従来技術における数値の範囲検索の場合、非圧縮'非暗号ィ匕の数値の一致 検索では、上述した「数値の一致検索の場合」と同様、簡易インデックスを利用した 高速ィ匕が課題である。
[0012] また、従来技術における数値の範囲検索の場合、圧縮 '暗号化された数値の範囲 検索では、上述した「数値の一致検索の場合」と同様、伸長と復号化の見直しによる 速度の改善が課題である。
[0013] さらに、治験データなどに関する数値の抽象化検索の場合、従来技術には無ぐ数 値の範囲検索を工夫し、かつ、人間の判断を交え、さらに各検索を組み合わせて対 応して!、る。抽象化の技術の確立と高速化が課題である。
[0014] 本発明は、上記に鑑みてなされたものであって、数値範囲内の数値が存在するファ ィルを圧縮したまま特定することにより、数値範囲検索の高速化および高精度化を図 ることができる情報検索プログラム、該プログラムを記録した記録媒体、情報検索方 法、および情報検索装置を提供することを目的とする。
課題を解決するための手段 [0015] 上述した課題を解決し、目的を達成するために、第 1の発明の情報検索プログラム 、該プログラムを記録した記録媒体、情報検索方法、および情報検索装置は、任意 の数値範囲の境界を規定する数値を取得し、取得された境界を規定する数値の桁 数および先頭数字を検出し、桁数および先頭数字を満たす数値群内の数値の存否 を検索対象ファイルごとにあらわしたビット列の集合の中から、検出された桁数および 先頭数字を満たす数値群内の数値の存否を前記検索対象ファイルごとにあらわした ビット列を抽出し、抽出されたビット列の中の、検出された桁数および先頭数字を満 たす数値群内の数値の存在を示すビットに対応する検索対象ファイルを、前記複数 の検索対象ファイルの中から特定し、特定された検索対象ファイルに含まれて ヽるフ アイル内数値が、前記境界を規定する数値との境界条件を充足して 、る力否かを判 断し、判断された判断結果に基づいて、特定された検索対象ファイルを、前記数値 範囲内の数値を含むファイルに決定することを特徴とする。
[0016] この発明によれば、数値範囲検索に先立って、桁数および先頭数字を満たす数値 群内の数値が含まれている検索対象ファイルの絞込みをおこなうことができる。
[0017] また、上記発明にお!/、て、前記境界を規定する一方の数値の桁数および先頭数字 を満たす一方の数値群と、前記境界を規定する他方の数値の桁数および先頭数字 を満たす他方の数値群との間に、中間の数値群が存在するか否かを判断し、前記一 方の数値群内の数値が存在する検索対象ファイルのうち前記中間数値群内の数値 が存在しな ヽ検索対象ファイル (以下、「一方の検索対象ファイル」 ヽぅ)を特定する とともに、前記他方の数値群内の数値が存在する検索対象ファイルのうち前記中間 数値群内の数値が存在しない検索対象ファイル (以下、「他方の検索対象ファイル」 t ヽぅ)を特定し、特定された一方の検索対象ファイルに含まれて!/、るファイル内数値 が前記境界を規定する一方の数値との境界条件を充足しているか否か、および、特 定された他方の検索対象ファイルに含まれているファイル内数値が前記境界を規定 する他方の数値との境界条件を充足して!/ヽるカゝ否かを判断し、判断された判断結果 に基づいて、前記一方の検索対象ファイル、前記他方の検索対象ファイル、または 前記中間数値群内の数値が存在する検索対象ファイルを、前記数値範囲内の数値 を含むファイルに決定することとしてもょ ヽ。 [0018] この発明によれば、桁数および先頭数字を満たす数値群内の数値が含まれて!/、る 検索対象ファイルの絞込みの高速ィ匕を図ることができる。
[0019] また、第 2の発明の情報検索プログラム、該プログラムを記録した記録媒体、情報検 索方法、および情報検索装置は、任意の数値範囲の境界を規定する数値を取得し、 取得された境界を規定する数値を所定の圧縮形式で圧縮し、前記境界を規定する 数値に関する圧縮情報と、検索対象ファイルを前記所定の形式で圧縮した圧縮化検 索対象ファイルに含まれているファイル内数値に関する圧縮情報とを照合することに より、前記ファイル内数値が前記境界を規定する数値との境界条件を充足しているか 否かを判断し、判断された判断結果に基づいて、前記圧縮化検索対象ファイルを、 前記数値範囲内の数値を含むファイルに決定することを特徴とする。
[0020] この発明によれば、圧縮状態のまま数値の大小を比較することができる。
[0021] また、上記発明にお!/、て、前記境界を規定する数値を、前記境界を規定する数値 の桁数を示す数字に関する圧縮符号および前記境界を規定する数値の桁数ごとの 数字に関する圧縮符号を含む圧縮情報に圧縮し、圧縮された圧縮情報と、前記ファ ィル内数値の桁数を示す数字に関する圧縮符号および前記ファイル内数値の桁ごと の数字に関する圧縮符号とを含む前記ファイル内数値に関する圧縮情報とを照合す ることにより、前記ファイル内数値が前記境界を規定する数値との境界条件を充足し て!ヽるカゝ否かを判断することとしてもよ!ヽ。
[0022] この発明によれば、桁数や先頭桁の数字、 2番目の桁の数字、…と!/、つた順に照 合することで、数値の大小比較を段階的に圧縮した状態でおこなうことができる。
[0023] また、上記発明にお!/、て、前記境界を規定する一方の数値の桁数および先頭数字 を満たす一方の数値群と、前記境界を規定する他方の数値の桁数および先頭数字 を満たす他方の数値群との間に、中間の数値群が存在するか否かを判断し、前記一 方の数値群内の数値が存在する圧縮化検索対象ファイルのうち前記中間数値群内 の数値が存在しな!、圧縮化検索対象ファイル (以下、「一方の圧縮化検索対象フアイ ル」という)を特定するとともに、前記他方の数値群内の数値が存在する圧縮化検索 対象ファイルのうち前記中間数値群内の数値が存在しない圧縮ィ匕検索対象ファイル (以下、「他方の圧縮化検索対象ファイル」という)を特定し、前記境界を規定する一 方の数値を、前記境界を規定する数値の桁数を示す数字に関する圧縮符号および 前記境界を規定する数値の桁数ごとの数字に関する圧縮符号を含む一方の圧縮情 報に圧縮するとともに、前記境界を規定する他方の数値を、前記境界を規定する数 値の桁数を示す数字に関する圧縮符号および前記境界を規定する数値の桁数ごと の数字に関する圧縮符号を含む他方の圧縮情報に圧縮し、前記一方の圧縮情報と 前記一方の圧縮ィ匕検索対象ファイルに含まれているファイル内数値に関する圧縮情 報とを照合すること〖こより、当該ファイル内数値が前記境界を規定する数値との境界 条件を充足しているか否かを判断するとともに、前記他方の圧縮情報と前記他方の 圧縮ィ匕検索対象ファイルに含まれているファイル内数値に関する圧縮情報とを照合 することにより、当該ファイル内数値が前記境界を規定する数値との境界条件を充足 しているカゝ否かを判断し、判断された判断結果に基づいて、前記一方の圧縮化検索 対象ファイル、前記他方の圧縮化検索対象ファイル、または前記中間数値群内の数 値が存在する圧縮化検索対象ファイルを、前記数値範囲内の数値を含むファイルに 決定することとしてもよい。
[0024] この発明によれば、桁数や先頭桁の数字、 2番目の桁の数字、…と!/、つた順に照 合することで、数値範囲検索を段階的に圧縮した状態でおこなうことができる。
[0025] また、上記発明において、前記検索対象ファイル内に存在する数字の出現頻度を 、前記検索対象ファイル内に存在する文字の出現頻度よりも高い出現頻度に補正し 、補正された出現頻度に基づいて、前記検索対象ファイルを圧縮し、前記境界を規 定する数値に関する圧縮情報と、前記ファイル圧縮工程によって圧縮された前記圧 縮ィ匕検索対象ファイルに含まれているファイル内数値に関する圧縮情報とを照合す ることにより、前記ファイル内数値が前記境界を規定する数値との境界条件を充足し て!ヽるカゝ否かを判断することとしてもよ!ヽ。
[0026] この発明によれば、数値の圧縮効率を文字データよりも優先的に高くすることがで きる。
[0027] また、上記発明において、さらに、前記検索対象ファイル内に存在するカンマの出 現頻度を、前記検索対象ファイル内に存在する文字の出現頻度よりも高い出現頻度 にネ ΐ正することとしてもよ 、。 [0028] この発明によれば、カンマを含む数値の圧縮効率を文字データよりも優先的に高く することができる。
[0029] また、上記発明において、さらに、前記検索対象ファイル内に存在する小数点の出 現頻度を、前記検索対象ファイル内に存在する文字の出現頻度よりも高い出現頻度 にネ ΐ正することとしてもよ 、。
[0030] この発明によれば、小数点を含む数値の圧縮効率を文字データよりも優先的に高 くすることがでさる。
[0031] また、第 3の発明の情報検索プログラム、該プログラムを記録した記録媒体、情報検 索方法、および情報検索装置は、数字と文字とが混在する検索対象ファイルの中か ら数値の存在を示すフィーダを検出し、検出されたフィーダに関連付けられている数 値の桁数を検出し、前記検索対象ファイル内に含まれている数字の出現頻度に基づ いて、前記数値を前記フィーダに関連付けて、検出された桁数を示す数字に関する 圧縮符号と前記数値の桁数ごとの数字に関する圧縮符号とを含む圧縮情報に圧縮 することを特徴とする。
[0032] この発明によれば、文字列の中に数字が混在して 、るファイル力もも高速に数値を 抽出することができる。
[0033] また、上記発明にお 、て、前記フィーダは、前記数値の種類を特定する情報として ちょい。
[0034] この発明によれば、圧縮された数値を分類することができ、同種の数値どうしについ て数値の大小比較や数値範囲検索をおこなうことができる。
[0035] また、上記発明において、前記数値が全角または半角であることを検出し、さらに、 前記数値を、検出された検出結果に関する圧縮符号を含む圧縮情報に圧縮すること としてちよい。
[0036] この発明によれば、数値の全角.半角の区別についても圧縮しておくことにより、全 角'半角の区別を示す圧縮符号を無視することで、全角 ·半角の相違を除外して数 値の大小比較や数値範囲検索をおこなうことができる。
[0037] また、上記発明において、前記数値の中からカンマを検出し、さらに、前記数値を、 検出された検出結果に関する圧縮符号を含む圧縮情報に圧縮することとしてもよい [0038] この発明によれば、数値のカンマの有無についても圧縮しておくことにより、カンマ の有無を示す圧縮符号を無視することで、カンマの相違を除外して数値の大小比較 や数値範囲検索をおこなうことができる。
[0039] また、上記発明において、前記検索対象ファイル内に存在する数字の出現頻度を 、前記検索対象ファイル内に存在する文字の出現頻度よりも高い出現頻度に補正し 、補正された出現頻度に基づいて、前記数値を圧縮することとしてもよい。
[0040] この発明によれば、数値の圧縮効率を文字データよりも優先的に高くすることがで きる。
[0041] また、上記発明において、さらに、前記検索対象ファイル内に存在するカンマの出 現頻度を、前記検索対象ファイル内に存在する文字の出現頻度よりも高い出現頻度 にネ ΐ正することとしてもよ 、。
[0042] この発明によれば、カンマを含む数値の圧縮効率を文字データよりも優先的に高く することができる。
[0043] また、上記発明において、さらに、前記検索対象ファイル内に存在する小数点の出 現頻度を、前記検索対象ファイル内に存在する文字の出現頻度よりも高い出現頻度 にネ ΐ正することとしてもよ 、。
[0044] この発明によれば、小数点を含む数値の圧縮効率を文字データよりも優先的に高 くすることがでさる。
発明の効果
[0045] この発明によれば、中間数値群内の数値に対して数値検索をおこなうことなぐ数 値範囲内の数値が存在するカゝ否かを判断することができ、数値検索の高速ィ匕を図る ことができる。
[0046] 本発明に力かる情報検索プログラム、該プログラムを記録した記録媒体、情報検索 方法、および情報検索装置は、数値範囲内の数値が存在するファイルを圧縮したま ま特定することにより、数値範囲検索の高速ィ匕および高精度化を図ることができると いう効果を奏する。
図面の簡単な説明 [図 1]図 1は、この発明の実施の形態に力かる情報検索装置のハードウェア構成を示 すブロック図である。
[図 2]図 2は、電子帳票のデータ構成を示す説明図である。
[図 3]図 3は、図 2に示したファイル構成データ 300を示す説明図である。
[図 4]図 4は、図 2に示したページリストデータ 400を示す説明図である。
[図 5]図 5は、数値'文字出現頻度管理データ 500を示す説明図である。
[図 6]図 6は、この発明の実施の形態に力かる情報検索装置の機能的構成を示すブ ロック図である。
[図 7]図 7は、図 6に示した数値 ·文字出現頻度管理データ生成部 612の機能的構成 を示すブロック図である。
[図 8]図 8は、数値'文字出現頻度管理データ 500の生成処理を示すデータ構成図 である。
[図 9]図 9は、連字 Z外字置換処理を示すデータ構成図である。
[図 10]図 10は、最終的に生成された連字 Z外字置換テーブル 640を示す説明図で ある。
[図 11]図 11は、図 6に示した圧縮 Z暗号ィ匕部 613の詳細な機能的構成を示すブロッ ク図である。
[図 12]図 12は、数字等の出現頻度の補正の一例を示す説明図である。
[図 13]図 13は、数字等の出現頻度の補正の他の例を示す説明図である。
[図 14]図 14は、圧縮 Z暗号化部 613による具体的なハフマン木生成処理を示す説 明図である。
[図 15]図 15は、図 11に示したファイルファイル圧縮部 1106の詳細な機能的構成を 示すブロック図である。
圆 16- 1]図 16— 1は、数値圧縮処理の第 1の例を示す説明図である。
圆 16-2]図 16— 2は、数値圧縮処理の第 2の例を示す説明図である。
圆 16-3]図 16— 3は、数値圧縮処理の第 3の例を示す説明図である。
[図 16-4]図 16— 4は、数値抽象化データの圧縮処理例を示す説明図である。
[図 17-1]図 17— 1は、ファイル圧縮部 1106によって圧縮された圧縮ィ匕帳票ファイル のデータ構造を示す説明図である。
[図 17-2]図 17— 2は、圧縮ブロックデータ Cl〜Cmと、圧縮前の元のブロックデータ との比較を示す図表である。
[図 18]図 18は、図 6に示した検索初期化部 621の詳細な機能的構成を示すブロック 図である。
圆 19]図 19は、第 1の区点対応テーブルと出現マップとの対応関係を示す説明図で ある。
[図 20]図 20は、第 2の区点対応テーブルと出現マップとの対応関係を示す説明図で ある。
[図 21]図 21は、検索実行部 622内の全文検索実行部 624の詳細な機能的構成を示 すブロック図である。
[図 22]図 22は、圧縮ィ匕帳票ファイル Fiの絞込みの一例を示す説明図である。
[図 23]図 23は、全文検索実行部 624における不一致照合処理を示す説明図である
[図 24]図 24は、図 23に示した圧縮ブロックデータのシフト操作を示す図表である。 圆 25]図 25は、照合予測テーブルの生成処理を示す説明図である。
[図 26]図 26は、全ビット不一致照合処理を示す説明図である。
[図 27]図 27は、検索実行部 622内の数値検索実行部 625の詳細な機能的構成を示 すブロック図である。
圆 28- 1]図 28— 1は、数値範囲の大小比較例を示す説明図(その 1)である。
圆 28- 2]図 28— 2は、数値範囲の大小比較例を示す説明図(その 2)である。
圆 28- 3]図 28— 3は、数値範囲の大小比較例を示す説明図(その 3)である。
圆 28- 4]図 28— 4は、数値範囲の大小比較例を示す説明図(その 4)である。
[図 29]図 29は、図 6に示した検索結果表示部 623の詳細な機能的構成を示すブロッ ク図である。
[図 30]図 30は、この発明の実施の形態に力かる情報検索装置 600の情報検索処理 手順を示すフローチャートである。
[図 31]図 31は、図 30に示した数値 ·文字出現頻度管理データ生成処理 (ステップ S3 001)の詳細な処理手順を示すフローチャートである。
[図 32-1]図 32— 1は、上述した数値 ·文字出現頻度集計処理 (ステップ S3102)の詳 細な処理手順を示すフローチャート(前半)である。
[図 32-2]図 32— 2は、数値 ·文字出現頻度集計処理 (ステップ S3102)の詳細な処 理手順を示すフローチャート (後半)である。
[図 33]図 33は、図 30に示した圧縮 Z暗号ィ匕処理 (ステップ S 3002)の詳細な処理手 順を示すフローチャートである。
[図 34]図 34は、図 33のステップ S3308に示した圧縮処理の詳細な処理手順を示す フローチャートである。
[図 35]図 35は、図 30に示した検索初期化処理 (ステップ S3003)の詳細な処理手順 を示すフローチャートである。
[図 36]図 36は、図 30に示した検索処理 (ステップ S 3004)の詳細な処理手順を示す フローチャートである。
[図 37]図 37は、照合予測テーブル生成処理手順を示すフローチャートである。
[図 38]図 38は、圧縮ブロックデータと圧縮キーワードとの不一致判定処理手順を示 すフローチャートである。
[図 39]図 39は、全ビット不一致照合処理 (ステップ S 3812およびステップ S 3817)を 示すフローチャートである。
[図 40]図 40は、この発明の実施の形態にカゝかる数値検索モードにおける数値検索 実行処理手順を示すフローチャートである。
[図 41]図 41は、図 40に示した下限特定 Z比較処理手順を示すフローチャートである
[図 42]図 42は、下限数値照合処理手順を示すフローチャートである。
[図 43]図 43は、図 40に示した上限特定 Z比較処理手順を示すフローチャートである
[図 44]図 44は、上限数値照合処理手順を示すフロ
符号の説明
500 数値 ·文字出現頻度管理データ 510 出現マップ
600 情報検索装置
601 編集部
602 検索部
622 検索実行部
623 検索結果表示部
624 全文検索実行部
625 数値検索実行部
2701 取得部
2702 数値圧縮部
2703 検出部
2704 中間数値群判断部
2706 省略マップ設定部
2707 下限 Z上限マップ生成部
2708 特定部
2709 圧縮情報検索部
2710 境界条件判断部
2711 決定部
発明を実施するための最良の形態
[0049] (情報検索装置のハードウェア構成)
まず、この発明の実施の形態に力かる情報検索装置のハードウェア構成について 説明する。図 1は、この発明の実施の形態に力かる情報検索装置のハードウェア構 成を示すブロック図である。
[0050] 図 1において、情報検索装置は、 CPU101と、 ROM102と、 RAM103と、 HDD ( ハードディスクドライブ) 104と、 HD (ノヽードディスク) 105と、 FDD (フレキシブルディ スクドライブ) 106と、着脱可能な記録媒体の一例としての FD (フレキシブルディスク) 107と、ディスプレイ 108と、 IZF (インターフェース) 109と、キーボード 110と、マウ ス 111と、スキャナ 112と、プリンタ 113と、を備えている。また、各構成部はバス 100 によってそれぞれ接続されて!、る。
[0051] ここで、 CPU101は、情報検索装置の全体の制御を司る。 ROM102は、ブートプ ログラムなどのプログラムを記 '慮している。 RAM103は、 CPU101のワークエリアとし て使用される。 HDD104は、 CPU101の制御にしたがって HD105に対するデータ のリード Zライトを制御する。 HD105は、 HDD104の制御で書き込まれたデータを feす。。
[0052] FDD106は、 CPU101の制御にしたがって FD107に対するデータのリード Zライ トを制御する。 FD107は、 FDD106の制御で書き込まれたデータを記憶したり、 FD 107に記憶されたデータを情報検索装置に読み取らせたりする。
[0053] また、着脱可能な記録媒体として、 FD107のほ力、 CD-ROM (CD-R, CD-R W)、 MO、 DVD (Digital Versatile Disk)、メモリーカードなどであってもよい。デ イスプレイ 108は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、 機能情報などのデータを表示する。このディスプレイ 108は、たとえば、 CRT, TFT 液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
[0054] IZF109は、通信回線を通じてインターネットなどのネットワーク 114に接続され、こ のネットワーク 114を介して他の装置に接続される。そして、 IZF109は、ネットワーク 114と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。 I ZF109には、たとえばモデムや LANアダプタなどを採用することができる。
[0055] キーボード 110は、文字、数字、各種指示などの入力のためのキーを備え、データ の入力をおこなう。また、タツチパネル式の入力パッドやテンキーなどであってもよい 。マウス 111は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変 更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、ト ラックボールやジョイスティックなどであってもよい。
[0056] スキャナ 112は、画像を光学的に読み取り、情報検索装置内に画像データを取り 込む。なお、スキャナ 112は、 OCR機能を持たせてもよい。また、プリンタ 113は、画 像データや文書データを印刷する。プリンタ 113には、たとえば、レーザプリンタゃィ ンクジェットプリンタを採用することができる。
[0057] (電子帳票のデータ構成) つぎに、電子帳票のデータ構成について説明する。図 2は、電子帳票のデータ構 成を示す説明図である。図 2において、本明細書において電子帳票とは、帳簿や伝 票と 、つた帳票を電子化したデータである。電子帳票をあらわすコンテンツ 200は、 上位フォルダ 201に保存されている。さら〖こ、上位フォルダ 201〖こは、管理フォルダ 2 02と帳票フォルダ 203と!、う下位のフォルダが含まれて!/、る。
[0058] 管理フォルダ 202には、ファイル構成データ 300 (図 3参照)、ページリストデータ 40 0 (図 4参照)、および数値 ·文字出現頻度管理データ 500 (図 5参照)が保存されて いる。また、帳票フォルダ 203には、複数の帳票ファイル fi (i=0〜n)力 なる帳票フ アイル群 fが保存されて 、る。
[0059] 各帳票ファイル fiはそれぞれ帳票データ gj (j = 1〜P)を有しており、全帳票ファイル fO〜fnで Pページ分有している。各帳票データ gjは、たとえば、 HTML形式または X ML形式で構成され、アンカーや見出し語などを含むヘッダ部 (宛先データ)、品名 データ、数量データ、金額データ、小計部、合計部、トレーラ部などの各種項目デー タを有している。
[0060] 図 3は、図 2に示したファイル構成データ 300を示す説明図である。ファイル構成デ ータ 300は、各帳票ファイル fO〜fnのファイル番号 i(i=0〜n)ごとにファイルパスを 関連付けたデータである。図 3では、ファイル番号 iの帳票ファイル fiを「file (i) . html 」と表記している。
[0061] 図 4は、図 2に示したページリストデータ 400を示す説明図である。ページリストデー タ 400とは、図 2に示した帳票ファイル fiと帳票データ gjとファイル構成データ 300とを 関連付けるデータである。ページリストデータ 400は、帳票ファイル fiの全ファイル数( n+ 1個)、ブロックサイズ (m byte)、帳票データ gjの全データ数(P個)、帳票フアイ ル fiのファイルパスデータ FP (0)〜FP (n)、ページリストを有する。
[0062] また、ページリストデータ 400は、ファイルパスデータ FP (i)ごとに、ファイル番号と ブロック数と図 3に示したファイルパスとを有する。また、ページリスト 401は、ファイル 番号 iごとにオフセット、レングス、ページ番号 見出し語が記述されているリストであ る。
[0063] 図 5は、数値 ·文字出現頻度管理データ 500を示す説明図である。図 5において、 数値 ·文字出現頻度管理データ 500は、数値 ·文字データの出現頻度を管理するデ ータである。ここで、数値'文字データは、数値データと文字データとに分けられる。 数値データとは、 0〜9の数字、 00〜99などの 2以上の連続する数字からなる数字連 字、桁数および先頭数字が共通する数値群、軽度高血圧など数値を抽象的な表現 であらわした抽象化数値データを含むデータである。
[0064] ここで、数値群とは、桁数および先頭数字により規定される数値範囲内の数値の集 合である。たとえば、 3桁でかつ先頭数字が 2である数値群とは、数値範囲 200〜29 9内の数値の集合である。
[0065] また、文字データとは、英字、かな、漢字、文字連字などを含むデータである。具体 的には、 8ビット系(ASCII)である英字、カタカナ、記号、 16ビット系 (JIS)の英字、力 タカナ、記号、 16ビット系 CFIS)の仮名や漢字などが文字データに含まれる。これら英 字や、仮名、カタカナなどの 8ビットコードが中心である表音文字および漢字の文字 データを、本明細書にぉ 、て「標準文字データ」と称す。
[0066] また、文字データには、標準文字データのほか、外字および文字連字が含まれる。
文字連字とは、 2以上の文字列力もなる文字データである。たとえば、 16ビットの 2つ の仮名の文字連字である場合、当該文字連字は、 32ビットコードの文字データから なる。また、非文字データではあるがアドレスポインタなどのバイナリデータも便宜的 に上記「文字データ」に含めることとする。以下、特に断りがない限り、「文字データ」と いう用語には、バイナリデータも含まれる。
[0067] また、数値 ·文字出現頻度管理データ 500は、数値'文字データの出現頻度、出現 ファイル数(ブロック数でもよい)、出現順位、出現マップ 510 (501〜509)を有する。 出現頻度とは、全帳票ファイル fO〜fnにおいて当該数値 ·文字データが出現した頻 度(回数)である。出現ファイル数とは、全帳票ファイル fO〜fnにおいて当該数値 '文 字データが出現した帳票ファイルの数である。出現順位とは、出現頻度順のランクで ある。
[0068] 出現マップ 510とは、帳票ファイル fi順に配列された n+ 1ビットのビット列であり、数 値'文字データの存否をあらわしている。図 5では、左端のビットが帳票ファイル fOに 対応するビットであり、右端のビットが帳票ファイル fnに対応するビットである。 [0069] 各ビットにおいて「1」が ONをあらわしており、「0」が OFFをあらわしている。すなわ ち、ある数値'文字データにおいて、その出現マップ 510中、帳票ファイル fiに対応 するビットが「1」である場合、当該数値'文字データが帳票ファイル fiに存在すること をあらわしている。また、帳票ファイル fiに対応するビットが「0」である場合、当該数値 •文字データが帳票ファイル fiに存在しな ヽことをあらわして ヽる。
[0070] (情報検索装置の機能的構成)
つぎに、この発明の実施の形態に力かる情報検索装置の機能的構成について説 明する。図 6は、この発明の実施の形態に力かる情報検索装置の機能的構成を示す ブロック図である。図 6において、情報検索装置 600は、編集部 601と検索部 602と から構成されている。
[0071] まず、編集部 601は、ファイル構成データ抽出部 611と、数値'文字出現頻度管理 データ生成部 612と、圧縮 Z暗号化部 613と、カゝら構成されている。ここでは、検索 対象として帳票ファイルを例に挙げて 、るが、数値データが含まれて 、るコンテンツ であれば、帳票ファイル以外のデータでもよい。
[0072] ファイル構成データ抽出部 611は、図 3に示したファイル構成データ 300を参照し て、帳票ファイル fO〜fnから図 4に示したページリストデータ 400を抽出する。また、 数値 ·文字出現頻度管理データ生成部 612は、帳票ファイル f 0〜f nから数値 ·文字 出現頻度管理データ 500を生成する。さらに、数値 ·文字出現頻度管理データ生成 部 612は、複数の帳票ファイル fO〜fnに記述されている数字連字や文字連字を外 字に置換する連字 Z外字置換テーブル 640を生成する。以降、数字連字および文 字連字をまとめて、「連字データ」と称す。
[0073] また、圧縮 Z暗号化部 613は、帳票ファイル fO〜fnを圧縮して圧縮ィ匕帳票ファイル 群 Fを生成するとともに、数値 ·文字出現頻度管理データ 500および連字 Z外字置 換テーブル 640を暗号ィ匕して、暗号化数値'文字出現頻度管理データ 650および暗 号化連字 Z外字置換テーブル 660を生成する。
[0074] また、検索部 602は、検索初期化部 621と、検索実行部 622と、検索結果表示部 6 23とから構成されている。検索初期化部 621は、暗号化数値 ·文字出現頻度管理デ ータ 650および暗号ィ匕連字 Z外字置換テーブル 660を復号して、検索部 602による 検索の初期化を実行する。
[0075] また、検索実行部 622は、数値 ·文字出現頻度管理データ 500や連字 Z外字置換 テーブル 640を用いて、検索処理を実行することにより、検索候補一覧を生成する。 具体的には、検索実行部 622は、全文検索を実行する全文検索実行部 624と、数値 検索を実行する数値検索実行部 625とを備える。
[0076] 全文検索実行部 624は、検索キーワードの入力を受け付け、圧縮化帳票ファイル の全文検索を実行することにより、検索キーワードに該当する帳票ファイル fiを示す 検索候補一覧を生成する。
[0077] また、数値検索実行部 625は、数値や数値範囲の入力を受け付け、圧縮化帳票フ アイル群 Fに対して数値検索を実行することにより、入力された数値や数値範囲に該 当する帳票ファイル fiを示す検索候補一覧を生成する。
[0078] また、検索結果表示部 623は、検索実行部 622による検索候補の中から、ユーザ に選択された検索候補を伸長して、検索結果として表示する。なお、上述した帳票フ アイル、数値'文字出現頻度管理データ 500、ファイル構成データ 300、ページリスト データ 400、連字 Z外字置換テーブル 640、圧縮化帳票ファイル群 F、暗号化数値 · 文字出現頻度管理データ 650および暗号ィ匕連字 Z外字置換テーブル 660は、具体 的には、たとえば、図 1に示した ROM102、 RAM103、 HD105などの記録媒体に よって、その機能を実現する。
[0079] また、編集部 601 (内部の機能的構成含む)および検索部 602 (内部の機能的構 成含む)は、具体的には、たとえば、図 1に示した ROM102、 RAM103、 HD105な どの記録媒体に記録されたプログラムを、 CPU101が実行することによって、その機 能を実現する。
[0080] (数値'文字出現頻度管理データ生成部 612の機能的構成)
つぎに、図 6に示した数値 ·文字出現頻度管理データ生成部 612の機能的構成に ついて説明する。図 7は、図 6に示した数値 ·文字出現頻度管理データ生成部 612の 機能的構成を示すブロック図である。図 7において、数値'文字出現頻度管理データ 生成部 612は、数値,文字データ抽出部 701と、数値,文字出現頻度集計部 702と、 ソート部 703と、生成処理部 704とから構成されて ヽる。 [0081] 数値 ·文字データ抽出部 701は、帳票ファイルから数値'文字データを順次抽出す る。数値'文字出現頻度集計部 702は、数値 ·文字データ抽出部 701によって抽出さ れた数値'文字データの帳票ファイル fiにおける出現頻度を集計する。また、数値- 文字出現頻度集計部 702は、数値'文字データの帳票ファイル fO〜fnごとの存否も 検出する。
[0082] また、ソート部 703は、出現頻度順に数値'文字データをソートする。生成処理部 7 04は、ソートされた各数値'文字データの出現頻度と、存否検出結果である各数値' 文字データの出現マップ 501〜509とを用いて、数値'文字出現頻度管理データ 50 0を生成する。また、連字 Z外字置換テーブル 640も生成する。ここで、数値'文字出 現頻度管理データ生成部 612による数値 ·文字出現頻度管理データ 500および連 字 Z外字置換テーブル 640の生成処理を具体的に説明する。
[0083] 図 8は、数値 ·文字出現頻度管理データ 500の生成処理を示すデータ構成図であ る。図 8において、(A)は、数値'文字出現頻度集計部 702によって数値'文字デー タが集計されたときの数値'文字出現頻度管理データ 500のデータ構成、(B)は、連 字 Z外字置換処理後の数値'文字出現頻度管理データ 500のデータ構成、 (C)は、 標準文字データおよび外字データ力 なる混合データのソート後における数値 ·文 字出現頻度管理データ 500のデータ構成、 (D)は、低出現頻度の混合データのカツ ト後における数値 ·文字出現頻度管理データ 500のデータ構成、(E)は、最終的に 生成された数値 ·文字出現頻度管理データ 500のデータ構成を示している。
[0084] (A)にお 、て、符号 800は、文字出現頻度管理データ 500の管理領域である。ま た、符号 801は、数値データ (数字連字を除く)の出現頻度、出現ファイル数、出現 順位、出現マップを記憶する数値領域である。また符号 802は、 8ビット系 (ASCII) である英字、カタカナ、記号、 16ビット系 (JIS)の英字、カタカナ、記号、 16ビット系 (J IS)のかなや漢字などの標準文字データの出現頻度、出現ファイル数、出現順位、 出現マップを記憶する標準文字領域である。
[0085] また、符号 803は、外字の出現頻度、出現ファイル数、出現順位、出現マップを記 憶する外字領域である。また、符号 804は、連字データの出現頻度、出現ファイル数 、出現順位、出現マップを記憶する連字領域である。また、符号 805は、 8ビットのバ イナリデータの出現頻度、出現ファイル数、出現順位を記憶するバイナリ領域である
[0086] (A)のデータ構造において、連字領域 804の連字データは、その出現頻度順にソ ートされる。そして、所定の出現頻度以上の連字データを、外字データと重複しない ように、他の外字データ(以下、「連字外字データ」)に置換する。このように、出現頻 度の高 、複数の文字列からなる連字データを、単一文字データである外字データに 置換することにより、データ量の削減を図ることができ、圧縮効率の向上を図ることが できる。なお、所定の出現頻度未満の連字データは、低出現頻度の連字データであ るため、単一の文字データに分解されて、該当する領域に割り当てられる。この結果 、(B)連字 Z外字置換処理後の数値'文字出現頻度管理データ 500のデータ構成と なる。
[0087] また、(B)のデータ構造において、数値領域 801のデータ、標準文字領域 802の 標準文字データおよび外字領域 803の外字データを混合して高出現頻度順にソー トした結果力 (C)のデータ構造である。(C)のデータ構造において、(B)に示した 連字外字領域 814の連字外字データおよびバイナリ領域 805のバイナリデータは、 ソートの対象外である。
[0088] (C)のデータ構造にお!、て、数値データと標準文字データと外字データとが混在 する混合領域 812において、低出現頻度、たとえば、出現回数 0回のデータはカット される。このカットされたときのデータ構造力 (D)のデータ構造である。(D)におい て、管理領域 800および混合領域 812と、連字外字領域 814と、バイナリ領域 805と を結合することで、(E)のデータ構造で示したような、最終的な数値'文字出現頻度 管理データ 500を生成することができる。
[0089] この数値.文字出現頻度管理データ 500において、管理領域 800には、ファイル. ブロック数と、出現文字データの種類の数(出現文字数 (種類))と、連字外字データ の数 (連字数 (256種))と、バイナリデータ数 (バイナリ(256種))とが記録される。
[0090] そして、図 5に示した数値 ·文字出現頻度管理データ 500は、バイナリデータを除く 数値 ·文字データごとに、出現頻度と出現マップ 510とが対応付けられている。数値' 文字データは高出現頻度順にソートされている。なお、後述するが、図 5に示した数 値-文字出現頻度管理データ 500において、数値 ·文字データとその出現頻度は、 所定のマスタキーを用い、暗号ィ匕アルゴリズムである排他的論理和 (XOR)などによ つて暗号ィ匕される。
[0091] つぎに、連字 Z外字置換処理について具体的に説明する。図 9は、連字 Z外字置 換処理を示すデータ構成図である。図 9において、(F)は、数値'文字出現頻度集計 部 702によって連字データが集計されたときの数値'文字出現頻度管理データ 500 の連字領域 804のデータ構成、(G)は、連字データのソート後における連字領域 80 4のデータ構成、(H)は、置換後におけるデータ構成を示している。
[0092] (F)のデータ構造にお!、て、連字領域 804は、領域 901〜907を有して!/、る。領域 901には、 8ビット系(ASCII)の数字列データ(「00」〜「99」)の情報(当該数字列デ ータ、出現頻度、出現ファイル数、出現順位、出現マップ)が記憶されている。
[0093] 領域 902には、 8ビット系(八3じ11)の英字列データ(「^」〜「22」)の情報(当該英 字列データ、出現頻度、出現ファイル数、出現順位、出現マップ)が記憶されている。 また、領域 903には、 8ビット系 (ASCII)のカタカナ列データ(「ァァ」〜「ンン」、濁音 •半濁音)の情報(当該カタカナデータ、出現頻度、出現ファイル数、出現順位、出現 マップ)が記憶されている。
[0094] 領域 904には、 16ビット系(JIS)の数字列データ(「00」〜「99」)の情報(当該数字 列データ、出現頻度、出現ファイル数、出現順位、出現マップ)が記憶されている。ま た、領域 905には、 16ビット系(113)の英字列データ(「^」〜「22」)の情報(当該数 字列データ、出現頻度、出現ファイル数、出現順位、出現マップ)が記憶されている。
[0095] 領域 906には、 16ビット系(JIS)のカタカナ列データ(「ァァ」〜「ンン」、濁音 ·半濁 音)の情報(当該カタカナ列データ、出現頻度、出現ファイル数、出現順位、出現マツ プ)が記憶されている。また、領域 907には、 16ビット系 (JIS)の仮名列データ(「ああ 」〜「んん」、濁音,半濁音)の情報(当該仮名列データ、出現頻度、出現ファイル数、 出現順位、出現マップ)が記憶されている。
[0096] また、(G)のデータ構造は、(F)のデータ構造を、各連字データの高出現順にソー トすることにより得られるデータ構造である。(G)のデータ構造において、領域 911は 、高出現頻度の連字データの情報であり、外字データへの置換対象となる。一方、領 域 912は、所定の出現頻度以下の連字データ (低出現頻度連字データ)の情報であ る。この低出現頻度連字データは、単一の文字データに分解される。これにより文字 データの出現頻度と出現マップ 505〜509とが補正される。
[0097] また、(H)のデータ構造は、(G)のデータ構造のうち高出現頻度の連字データを外 字に置換することによって得られるデータ構造である。連字外字領域 814には、置換 された連字外字データの情報(当該連字外字データ、出現頻度、出現ファイル数、 出現順位、出現マップ)が記憶されている。
[0098] また、図 10は、最終的に生成された連字 Z外字置換テーブル 640を示す説明図 である。連字 Z外字置換テーブル 640は、(G)のデータ構造の領域 911の連字デー タと、 (H)のデータ構造の領域 814の連字外字データとを対応させることによって生 成される。
[0099] (圧縮 Z暗号化部 613の詳細な機能的構成)
つぎに、図 6に示した圧縮 Z暗号ィ匕部 613の詳細な機能的構成について説明する 。図 11は、図 6に示した圧縮 Z暗号ィ匕部 613の詳細な機能的構成を示すブロック図 である。図 11において、圧縮 Z暗号ィ匕部 613は、出現頻度補正部 1101と、低出現 頻度数値,文字データ分解部 1102と、暗号化部 1103と、生起確率演算部 1104と、 ハフマン木生成部 1105と、ファイル圧縮部 1106と、力 構成されている。
[0100] まず、出現頻度補正部 1101は、数値 ·文字出現頻度管理データ 500内の数字に 関する出現頻度を補正する。具体的には、たとえば、 0〜9の数字や小数点、フィー ダ (以下、「数字等」という)に対する圧縮符号のビット幅を設定し、そのビット幅に応じ た出現頻度を、 0〜9の数字等に対して設定する。より具体的には、文字データの出 現頻度よりも高くなるように強制的に数字等の出現頻度を補正する。
[0101] 図 12は、数字等の出現頻度の補正の一例を示す説明図である。図 12では、数値' 文字データの出現頻度を補正する符号ィ匕テーブルを示している。図 12では、圧縮 符号のビット幅力 ビットであるため、数値等の各出現頻度を 1Z16とする。そして、さ らに出現順位に応じて出現頻度を加算している。図 12に示した補正例は、数値が多 い帳票ファイルに有効である。なお、補正により出現頻度の総和が 1を超過した場合
、その他の文字データの出現頻度に応じて、その他の文字データの出現頻度が補 正される。
[0102] 図 13は、数字等の出現頻度の補正の他の例を示す説明図である。図 13でも、数 値'文字データの出現頻度を補正する符号ィ匕テーブルを示している。図 13では、圧 縮符号のビット幅が 5ビットであるため、数値等の各出現頻度を 1Z32とする。そして 、さらに出現順位に応じて出現頻度を加算している。図 13に示した補正例は、文字 データが多いホームページなどに有効である。なお、補正により出現頻度の総和が 1 を超過した場合、その他の文字データの出現頻度に応じて、その他の文字データの 出現頻度が補正される。
[0103] また、図 11において、低出現頻度数値'文字データ分解部 1102は、数値'文字出 現頻度管理データ 500内における文字領域の数値 ·文字データを高出現頻度順に ソートする。そして、所定の出現頻度以下の残余の低出現頻度の数値'文字データ を 8ビットコードに分解して、同じ 8ビットコードであるバイナリデータが記憶されている ノイナリ領域に記憶する。
[0104] 暗号ィ匕部 1103は、低出現頻度数値 ·文字データ分解部 1102による分解によって 得られた数値'文字出現頻度管理データ 500を、所定のマスタキーを用いて XOR〖こ よる暗号ィ匕をおこない、暗号ィ匕数値 ·文字出現頻度管理データ 650を生成する。連 字 Z外字置換テーブル 640も同様に、所定のマスタキーを用いて XORによる暗号ィ匕 をおこな 、、暗号ィ匕連字 Z外字置換テーブル 660を生成することとしてもょ 、。
[0105] また、生起確率演算部 1104は、低出現頻度数値 ·文字データ分解部 1102による 分解によって得られた文字出現頻度管理データ 500における数値データ、標準文字 データ、連字外字データおよびバイナリデータを高出現順にソートして、これらの生 起確率を演算する。また、ハフマン木生成部 1105は、生起確率演算部 1104によつ て演算された生起確率力 ハフマン木を生成する。
[0106] また、ファイル圧縮部 1106は、ハフマン木生成部 1105によって生成されたハフマ ン木を用いて帳票ファイル群 fを圧縮し、圧縮化帳票ファイル群 Fを生成する。具体的 には、各帳票ファイル fO〜fnに記述されている数値 ·文字データに対して、補正後の 出現頻度が高い順、すなわち生起確率が高い順に短いビットを割り当てて、帳票ファ ィル群 fを圧縮する。ファイル圧縮部 1106による帳票ファイル群 fの圧縮は、数値と文 字データとで圧縮法が異なる。この点については後述する。
[0107] つぎに、圧縮 Z暗号ィ匕部 613による具体的なハフマン木生成処理について説明す る。図 14は、圧縮 Z暗号化部 613による具体的なハフマン木生成処理を示す説明 図である。図 14の (I)に示した数値'文字出現頻度管理データ 500を、低出現頻度 数値'文字データ分解部 1102により、低出現頻度の文字データを分解して、バイナ リデータが記憶されて 、るバイナリ領域に記憶する(図 14中 ω )。
[0108] つぎに、 ωのデータ構造にぉ 、て、混合領域、連字外字領域、およびバイナリ領 域内のすべての数値 ·文字データを高出現頻度順にソートする(図 14中(Κ) )。そし て、(Κ)の領域 1400において、出現頻度をノヽフマンの圧縮パラメータとして各数値' 文字データの生起確率を演算する(図 14中(L) )。最後に (L)において、各数値'文 字データの生起確率からハフマン木 1401を生成する(図 14中(M) )。
[0109] (ファイル圧縮部 1106の詳細な機能的構成)
つぎに、図 11に示したファイル圧縮部 1106の詳細な機能的構成にっ 、て説明す る。図 15は、図 11に示したファイル圧縮部 1106の詳細な機能的構成を示すブロック 図である。
[0110] 図 15において、ファイル圧縮部 1106は、フィーダ検出部と、文字データ抽出部と、 数値抽出部と、数値詳細情報検出部と、圧縮処理部と、から構成されている。
[0111] まず、フィーダ検出部 1501は、帳票ファイル fiの中力もフィーダを検出する。フィー ダは数値の先頭に位置するため、フィーダが検出されると、その後には数値が存在 することとなり、フィーダが検出されないと、当該文字データと認識される。
[0112] また、文字データ抽出部 1502は、フィーダ検出部 1501によりフィーダにフィーダ が検出されな力つた場合、その位置のデータを文字データとして抽出する。抽出され た文字データは圧縮処理部 1505にお 、て圧縮処理される。
[0113] 数値抽出部 1503は、フィーダ検出部 1501によりフィーダが検出された場合、当該 フィーダに関連付けられている数値、たとえば、フィーダに続く数字列を数値として抽 出する。この場合、数字列の中に、カンマや小数点が含まれている場合、そのカンマ や小数点も抽出する。
[0114] また、数値詳細情報検出部 1504は、数値抽出部 1503によって抽出された数値の 詳細な情報を抽出する。ここで、詳細な情報とは、たとえば、桁数はいくつか、数値が 全角であるか半角である力 カンマが含まれている力、小数点が含まれている力、含 まれて 、る場合の小数点の位置などを検出する。
[0115] また、圧縮処理部 1505は、ハフマン木生成部 1105によって生成されたハフマン 木を用いて、文字データ抽出部 1502によって抽出された文字データや、数値抽出 部 1503によって抽出された数値データを圧縮する。
[0116] 数値を圧縮する場合、ハフマン木を用いて、桁数を示す数字や桁ごとの数字を、当 該数字に応じた圧縮符号に変換する。このとき、桁ごとの数字の圧縮符号は、桁順に 配列するものとする。また、数値に小数点が含まれている場合、小数点に応じた圧縮 符号に変換する。カンマの有無や全角'半角については、 1ビットであらわす。
[0117] (数値圧縮処理)
つぎに、上述した圧縮処理部 1505における数値圧縮処理について説明する。数 値圧縮処理では、まず、金額や血圧などの数値情報から数値のみを抽出する。そし て、この抽出された数値を圧縮する。具体的には、図 12や図 13に示した符号ィ匕テ一 ブルを参照して、フィーダの圧縮符号を読み出す。
[0118] つぎに、数値が半角か全角かを示すビット(全角 ·半角ビット)を設定する。この全角
'半角ビットは全角の場合が「1」で半角の場合が「0」である。また、数値がカンマ「,」 を用いた表記である力否かを示すカンマ有無ビットを設定する。このカンマ有無ビット はカンマ有りの場合が「 1」でカンマ無しの場合が「0」である。
[0119] つぎに、数値の桁数を検出する。検出された桁数は小数点以下の桁数は含まれな いこととする。そして、検出された桁数が示す数字の圧縮符号を図 12に示した符号 化テーブルから読み出す。また、数値を構成する先頭桁から末尾桁までの数字の圧 縮符号を、図 12や図 13に示した符号ィ匕テーブルカゝら読み出す。
[0120] つぎに、数値に小数点があれば小数点の圧縮符号を図 12や図 13に示した符号ィ匕 テーブルから読み出す。このようにして、数値は、圧縮符号およびビットからなる数字 列に圧縮される。以下、図 12の符号ィ匕テーブルを用いた圧縮処理例について説明 する。なお、圧縮処理された数値を、圧縮数値と称す。
[0121] 図 16— 1は、数値圧縮処理の第 1の例を示す説明図である。図 16— 1においては 、数値情報「¥6, 800.―」から先頭の「¥」および末尾の「―」を分離して、数値「6, 800.」を抽出する。そして、この数値「6, 800.」を圧縮する。
[0122] 具体的には、数値の開始位置を示すフィーダ「x' B'」の圧縮符号「1011」を図 12 に示した符号ィ匕テーブル力も読み出す。つぎに、数値「6, 800.」が半角であること を示す全角.半角ビット「0」を設定する。また、数値データ「6, 800.」がカンマ「,」を 用いた表記であることを示すカンマ有無ビット「1」を設定する。つぎに、数値「6, 800 .」の桁数「4」を検出し、検出された桁数「4」の圧縮符号「0100」を図 12に示した符 号化テーブルから読み出す。
[0123] つぎに、数値「6, 800.」の先頭数字「6」、第 2数字「8」、第 3数字「0」、および末尾 数字「0」までの数字の圧縮符号「0110」, 「1000」, 「0000」, 「0000」を、図 12に示 した符号ィ匕テーブル力も読み出す。最後に、数値「6, 800.」の小数点「x'A'」の圧 縮符号「1010」を、図 12に示した符号ィ匕テーブル力も読み出す。このようにして、数 値「6, 800.」は圧縮されることとなる。
[0124] 図 16— 2は、数値圧縮処理の第 2の例を示す説明図である。図 16— 2においては 、数値情報「 $ 680. 50—」から先頭の「 $」および末尾の「―」を分離して、数値「68 0. 50」を抽出する。そして、この数値「680. 50」を圧縮する。
[0125] 具体的には、数値の開始位置を示すフィーダ「x' B'」の圧縮符号「1011」を図 12 に示した符号ィ匕テーブル力も読み出す。つぎに、数値「680. 50」が半角であること を示す全角.半角ビット「0」を設定する。また、数値「680. 50」がカンマ「,」を用いて いない表記であることを示すカンマ有無ビット「0」を設定する。つぎに、数値「680. 5 0」の桁数「3」を検出し、検出された桁数「3」の圧縮符号「0011」を図 12に示した符 号化テーブルから読み出す。
[0126] つぎに、数値「680. 50」の先頭数字「6」、第 2数字「8」、第 3数字「0」、小数点「x, A'」、第 4数字「5」、および末尾数字「0」までの数字の圧縮符号「0110」, 「1000」, 「0000」, 「1010」, 「0101」, 「0000」を、図 12に示した符号ィ匕テープノレ力ら読み出 す。このようにして、数値「680. 50」は圧縮されることとなる。
[0127] 図 16— 3は、数値圧縮処理の第 3の例を示す説明図である。図 16— 3においては 、数値情報「6800円」から末尾の「円」を分離して、数値「6800」を抽出する。そして 、この数値「6800」を圧縮する。
[0128] 具体的には、数値の開始位置を示すフィーダ「x' B'」の圧縮符号「1011」を図 12 に示した符号ィ匕テーブルカゝら読み出す。つぎに、数値「6800」が全角であることを示 す全角.半角ビット「1」を設定する。また、数値「6800」がカンマ「,」を用いていない 表記であることを示すカンマ有無ビット「0」を設定する。つぎに、数値「6800」の桁数 「4」を検出し、検出された桁数「4」の圧縮符号「0100」を図 12に示した符号ィ匕テ一 ブルから読み出す。
[0129] つぎに、数値「6800」の先頭数字「6」、第 2数字「8」、第 3数字「0」、および末尾数 字「0」までの数字の圧縮符号「0110」, 「1000」, 「0000」, 「0000」を、図 12に示し た符号ィ匕テーブル力も読み出す。このようにして、数値「6800」は圧縮されることとな る。
[0130] 図 16— 4は、数値抽象化データの圧縮処理例を示す説明図である。図 16— 4にお いては、 HTMLデータ中、最小血圧の値を示す数値抽象化データ「<最小血圧 > 1 07<最小血圧 >」から先頭および末尾の「 < Z最小血圧 >」を分離して、数値「107 」を抽出する。そして、この数値「107」を圧縮する。
[0131] 具体的には、数値の開始位置を示すフィーダ「x' 0B'」の圧縮符号「00001011」 を図 12に示した符号ィ匕テーブル力も読み出す。このフィーダ「x' 0B'」は、数値が最 終血圧であることを識別するフィーダである。つぎに、数値「107」が半角であることを 示す全角.半角ビット「0」を設定する。また、数値「107」がカンマ「,」を用いていない 表記であることを示すカンマ有無ビット「0」を設定する。つぎに、数値「107」の桁数「 3」を検出し、検出された桁数「3」の圧縮符号「0011」を図 12に示した符号ィ匕テープ ルから読み出す。
[0132] つぎに、数値「107」の先頭数字「1」、第 2数字「0」、および第 3数字「7」までの数字 の圧縮符号「0001」, 「0000」, 「0111」を、図 12に示した符号化テーブルから読み 出す。このようにして、数値「107」は圧縮されることとなる。
[0133] (圧縮化帳票ファイルのデータ構造)
つぎに、ファイル圧縮部 1106によって圧縮された圧縮ィ匕帳票ファイルのデータ構 造について説明する。図 17—1は、ファイル圧縮部 1106によって圧縮された圧縮ィ匕 帳票ファイルのデータ構造を示す説明図である。図 17— 1では、任意の圧縮化帳票 ファイル Fiに着目して説明する。この圧縮ィ匕帳票ファイル Fiは、ブロック数情報 (m個 )を格納する領域 1701と、 m個の各ブロックのアドレス情報(# l〜# m)を格納する 領域 1702と、各ブロックの圧縮ブロックデータ Cl〜Cmを格納する領域 1703から構 成される。
[0134] また、図 17— 2は、圧縮ブロックデータ Cl〜Cmと、圧縮前の元のブロックデータと の比較を示す図表である。図 17— 2を参照すると、圧縮ブロックデータ Cl〜Cmのレ ンダスが、対応する元のブロックデータのレングスの約半分に圧縮されて 、ることがわ かる。
[0135] (検索初期化部 621の詳細な機能的構成)
つぎに、図 6に示した検索初期化部 621の詳細な機能的構成について説明する。 図 18は、図 6に示した検索初期化部 621の詳細な機能的構成を示すブロック図であ る。図 18において、検索初期化部 621は、復号部 1801と、低出現頻度数値,文字 データ分解部 1802と、生起確率演算部 1803と、ハフマン木生成部 1804と、出現マ ップ設定部 1805と、力 構成されている。
[0136] まず、復号部 1801は、暗号化数値'文字出現頻度管理データ 650を復号する。具 体的には、図 11で用いた暗号ィ匕のマスタキーを用いて排他的論理和 (XOR)による 復号処理を実行する。同様に、暗号化連字 Z外字置換テーブル 660も、元の連字 Z外字置換テーブル 640に戻す。また、低出現頻度数値 ·文字データ分解部 1802 、生起確率演算部 1803およびノヽフマン木生成部 1804は、図 11に示した低出現頻 度数値 ·文字データ分解部 1102、生起確率演算部 1104およびハフマン木生成部 1 105と同一の処理を実行し、ハフマン木 1810を生成する。このハフマン木は、出現 頻度補正部 1101により補正されたハフマン木となる。
[0137] また、出現マップ設定部 1805は、復号された数値 ·文字出現頻度管理データ 500 の出現マップ 510を読み込んでメモリ展開し、区点対応テーブルとリンクする。区点 は、 JISによって制定された全角文字向けの文字コードであり、区点対応テーブルは 、各区点のアドレスを記憶したテーブルである。
[0138] 図 19は、文字の区点対応テーブルと出現マップとの対応関係を示す説明図である 。文字の区点対応テーブル 1900は、数値'文字出現頻度管理データ 500の文字デ ータと出現マップ 505〜509とを対応づけるテーブルである。この文字の区点対応テ 一ブル 1900により、区点に対応する文字データの存否をあらわすビット列の出現マ ップ 505〜509を呼び出すことができる。
[0139] 図 20は、数値の区点対応テーブルと出現マップとの対応関係を示す説明図である 。数値の区点対応テーブル 2000は、数値'文字出現頻度管理データ 500の数値群 と出現マップ 503とを対応づけるテーブルである。この数値の区点対応テーブル 200 0により、区点に対応する数値群内の数値の存否をあらわすビット列の出現マップ 50 3を呼び出すことができる。
[0140] (全文検索実行部 624の詳細な機能的構成)
つぎに、図 6に示した検索実行部 622内の全文検索実行部 624の詳細な機能的構 成について説明する。図 21は、検索実行部 622内の全文検索実行部 624の詳細な 機能的構成を示すブロック図である。
[0141] 図 21において、全文検索実行部 624は、検索キーワード入力処理部 2101と、検 索キーワード圧縮部 2102と、出現マップ読取部 2103と、圧縮化帳票ファイル特定 部 2104と、圧縮ィ匕帳票ファイル抽出部 2105と、判定部 2106と、ブロック伸長部 21 07と、文字列比較部 2108と、ファイル構成データ特定部 2109と、検索候補一覧表 示部 2110と、検索候補選択部 2111と、力 構成されている。
[0142] まず、検索キーワード入力処理部 2101は、ユーザからの検索キーワードの入力を 受け付ける。また、検索キーワードが複数ある場合、各検索キーワードの文字列を連 結する。さらに、検索キーワードの連字が所定の連字に該当する場合、連字 Z外字 置換テーブル 640を用いて、連字を外字に置換する。このあと、検索キーワード入力 処理部 2101は、検索キーワードを単一文字に分解する。
[0143] また、検索キーワード圧縮部 2102は、検索キーワード入力処理部 2101によって入 力された検索キーワードを、検索初期化部 621のハフマン木生成部 1804によって生 成されたハフマン木 1810を用いて圧縮する。また、出現マップ読取部 2103は、出 現マップ設定部 1805によって設定された出現マップ 510を用いて、検索キーワード の各文字の各帳票ファイル fO〜fnにおけるビット列を読み取る。具体的には、この出 現マップ 510における各文字データは、区点対応テーブルにより区点とリンクしてい るため、区点と一致する検索キーワードの各文字データのビット列を読み取ることが できる。
[0144] 圧縮ィ匕帳票ファイル特定部 2104は、出現マップ 510から読み取られた各文字の各 帳票ファイル fO〜fnにおけるビット列の論理積を算出することにより、検索キーワード の各文字データがすべて存在する圧縮化帳票ファイルを特定することで、圧縮化帳 票ファイルの絞込みをおこなう。ここで、絞込みの一例について説明する。
[0145] 図 22は、圧縮ィ匕帳票ファイル Fiの絞込みの一例を示す説明図である。図 22にお いては、検索キーワードを『出金伝票』とし、帳票ファイルの数を 4個、すなわち、ファ ィル番号 i=0〜3までとする。図 22において、たとえば、文字『出』のビット列は [110 0]である。このビット列は、ファイル番号 0、 1の帳票ファイル f0、 flには文字『出』が 含まれており、ファイル番号 2、 3の帳票ファイル f2、 f3には文字『出』が含まれていな いことを示している。
[0146] そして、図 22において、絞込み結果は、ファイル番号 iごとのビットの論理積 (AND )結果を示している。この絞込み結果によれば、ファイル番号 1の帳票ファイル flのみ 力 存在を示すビット「1」となっているため、検索キーワードを構成するすべての文字 『出』、『金』、『伝』および『票』は、帳票ファイル flにのみ存在し、他の帳票ファイル fO 、 f2、 f 3には存在しないことがわかる。これにより、検索対象としてオープンするフアイ ルを、帳票ファイル flを圧縮した圧縮ィ匕帳票ファイル F1のみに特定することができ、 無駄なファイルのオープン Zクローズ処理を防止して検索速度の向上を図ることがで きる。
[0147] また、図 21において、圧縮ィ匕帳票ファイル抽出部 2105は、圧縮化帳票ファイル群 Fの中から、圧縮ィ匕帳票ファイル特定部 2104によって特定された帳票ファイル Fiを 抽出する。図 22の例では、ファイル番号 1の圧縮ィ匕帳票ファイル F1を抽出する。
[0148] また、判定部 2106は、圧縮ィ匕帳票ファイル抽出部 2105によって抽出された圧縮 化帳票ファイル Fiに、検索キーワード圧縮部 2102によって圧縮された検索キーヮー ド (以下、「圧縮キーワード」)が含まれている力否かを判定する。具体的には、圧縮ィ匕 帳票ファイル Fi内の圧縮ブロックデータごとに判定をおこなっている。 [0149] この判定結果が不一致である場合、圧縮ィ匕帳票ファイル Fiには、検索キーワードが 含まれていないことがわかる。一方、判定結果が一致である場合、圧縮化帳票フアイ ル Fiには、検索キーワードが含まれていることがわかる。たとえば、図 22においては、 圧縮ィ匕帳票ファイル F1に、検索キーワード『出金伝票』と!、う文字列が含まれて 、る ことがわ力ゝる。
[0150] また、ブロック伸長部 2107は、判定部 2106により一致すると判定された圧縮ィ匕帳 票ファイル Fiの圧縮ブロックデータのみ伸長する。この判定部 2106およびブロック伸 長部 2107により、圧縮ィ匕帳票ファイル Fiのまま判定をおこなうことができ、不一致で あれば、圧縮化帳票ファイル Fiを伸長する前に検索候補から外し、一致した帳票ファ ィルのみ伸長することができる。また、ブロック伸長部 2107において、伸長された帳 票ファイル fiに連字外字データが含まれている場合、復号部 1801によって復号され た連字 Z外字置換テーブル 640を用いて、連字外字データを元の連字データに置 換する。
[0151] また、文字列比較部 2108は、ブロック伸長部 2107によって伸長されたブロックデ ータ内の文字列と、検索キーワード入力処理部 2101によって入力された検索キーヮ 一ドとを比較する。
[0152] ファイル構成データ特定部 2109は、検索キーワードに一致する文字列の帳票デ ータ gjがあつた場合、当該帳票データ gjのページ番号 jおよび当該帳票データ gjが 属する帳票ファイル fiのファイル番号 iを特定する。
[0153] 検索候補一覧表示部 2110は、ページリストデータ 400を編集して、ファイル構成デ ータ 300内のファイルリストのうち、文字列比較部 2108により帳票データ gjのページ 番号 jおよび当該帳票データ gjが属する帳票ファイル fiのファイル番号 iが特定された ファイルリストを、検索候補一覧 (たとえば、見出し語の一覧)として図 1に示したデイス プレイ 108に表示する。
[0154] また、検索候補選択部 2111は、検索候補一覧表示部 2110によって表示された検 索候補一覧の中から、ユーザの操作によって選択された検索候補を受け付ける。
[0155] (全文検索機能における不一致照合処理)
つぎに、上述した全文検索実行部 624における不一致照合処理について説明す る。上述した全文検索の文字列の不一致照合方式は、圧縮 '暗号化されたデータを 伸長せず、検索キーワードを圧縮し不一致照合をおこなうこととして 、る。
[0156] 非圧縮データの文字列の照合は 1バイト毎、もしくは文字単位に比較されるが、圧 縮データでは、文字の境界の識別が困難であり、 1ビット毎にシフトを行い比較するこ とが必要である。ここでは、この点に着目して、圧縮ィ匕帳票ファイルに対して、 CPU1 01が得意であるバイト毎の操作をもとにした不一致照合処理を全文検索実行部 624 において実行する。
[0157] 図 23は、全文検索実行部 624における不一致照合処理を示す説明図である。図 2 1に示した検索キーワード入力処理部 2101により入力された検索キーワード 2301 は、検索キーワード圧縮部 2102によりハフマン木 1810を用いて Xビットの圧縮キー ワード 2302に圧縮され、レジスタ Raにセットされる。
[0158] 一方、圧縮ィ匕帳票ファイル抽出部 2105によって抽出された特定圧縮ィ匕帳票フアイ ル(圧縮化帳票ファイル) 2311内の圧縮ブロックデータ 2312をレジスタ Rbにセットし て、レジスタ Raにセットされた圧縮キーワード 2302と比較する。具体的には、レジス タ Rbには、所定バイトずつシフトされた圧縮ブロックデータ 2312がセットされ、順次 圧縮キーワード 2302と比較される。
[0159] 具体的には、圧縮キーワード 2302と圧縮ブロックデータ 2312との XOR演算により 比較結果 2320を出力する。そして、比較結果 2320における末尾 8ビット(図 23中、 網掛け表示)のビット列 2330を抽出して、不一致照合をおこなう。
[0160] 図 24は、図 23に示した圧縮ブロックデータのシフト操作を示す図表である。このシ フト操作では、圧縮キーワード 2302の圧縮サイズ (圧縮キーワード長)に応じた照合 間隔分シフトする。なお、圧縮キーワード長が 16ビット以上である場合、照合判定の ビット長は 8ビットとなるが、 11ビット以上 15ビット以下の場合、 3〜7ビットとして、末尾 のビットを調整する。また、圧縮キーワード長力^〜 10ビットの場合、圧縮形式の不一 致照合はおこなわず、伸長後に検索キーワード 2301を照合する。
[0161] 図 25は、照合予測テーブルの生成処理を示す説明図である。図 25において、レジ スタ Raに圧縮キーワード 2302をセットする。レジスタ Ra内の「 *」(末尾 8ビット)は、 圧縮キーワード 2302が保持されていないビットである。図 25では、そして、レジスタ R a内の圧縮キーワード 2302を 1ビットごとシフトして、シフトテーブル 2500を生成する 。すなわち、圧縮キーワード 2302は nビットであるため、シフト数 0ビットから X— 8ビッ トまでのシフトビット列によりシフトテーブル 2500を生成する。
[0162] そして、レジスタ Raにセットされている圧縮キーワード 2302とシフトテーブル 2500 とを照合予測する。具体的には、 XOR演算を施すことにより、 XORテーブル 2501を 生成する。そして、 XORテーブル 2501の各シフトビット列において、「*」が含まれて V、ない 17ビット目力も 24ビット目までの 8ビット分の部分ビット列(図中網掛け表示)と 対応するシフトビット列のシフト数とを連結して部分判定テーブル 2502を生成する。
[0163] つぎに、高速判定するための照合予測テーブル 2503を生成する。照合予測テー ブル 2503は、部分判定テーブル 2502を参照して、 8ビットのアドレスに、シフト数を 割り当てる。なお、シフト数が重複するビット列が出現した場合、当該ビット列には「64 」がセットされ、照合の際、部分判定テーブル 2502を参照する。また、部分判定テー ブル 2502とは一致しないアドレスには、シフト数として「一1」を割り当てる。この照合 予測テーブル 2503と不一致照合用のビット列 2330とを比較することで、不一致照 合を実行する。
[0164] 図 26は、全ビット不一致照合処理を示す説明図である。図 26において、現在のシ フト数を 8で除算することにより、その除数および余りを算出する。そして、特定圧縮 化帳票ファイル 2311の現在のポインタに除数を加算することで、加算後のポインタ に応じた圧縮ブロックデータ 2312を再取得してレジスタ Rbにセットする。そして、セッ トされた圧縮ブロックデータ 2312を余りの値分シフトする。
[0165] また、圧縮キーワード 2302をレジスタ Raにセットする。両レジスタ Ra、 Rbにおいて 照合対象外となるビットのマスクを OFFにし、両レジスタ Ra、 Rbを比較する。そして、 全ビットが一致した場合に、その一致したアドレスを記録することとする。
[0166] (数値検索実行部の詳細な機能的構成)
図 27は、検索実行部 622内の数値検索実行部 625の詳細な機能的構成を示すブ ロック図である。なお、図 21に示した構成と同一構成については同一符号を付し、そ の説明を省略する。
[0167] 図 27において、数値検索実行部 625は、取得部 2701と、数値圧縮部 2702と、検 出部 2703と、中間数値群判断部 2704と、出現マップ抽出部 2705と、省略マップ設 定部 2706と、下限 Z上限マップ生成部 2707と、特定部 2708と、圧縮情報検索部 2 709と、境界条件判断部 2710と、決定部 2711と、を有している。
[0168] まず、取得部 2701は、任意の数値範囲の境界を規定する数値を取得する。ここで 、数値範囲とは、境界を規定する数値と境界を規定する演算子とにより特定される区 間である。境界を規定する数値とは、数値範囲の下限を規定する数値 (下限数値) N Xや上限を規定する数値 (上限数値) Nyである。また、境界を規定する演算子とは、「 ≤」、「く」、「 」、「>」といった不等号を示す演算子であり、下限数値や上限数値の 境界条件となる。
[0169] これにより、任意の数値を Zとすると、取得部 2701では、ユーザ入力や演算子の初 期設定などにより、数値 Nが取りうる以下の数値範囲を設定することができる。
•Nx<Z
•Nx≤Z
•Ny>Z
•Ny≥Z
•Nx<Z<Ny
•Nx≤Z<Ny
•Nx<Z≤Ny
•Nx≤Z≤Ny
[0170] また、数値圧縮部 2702は、取得部 2701によって取得された数値を圧縮する。具 体的には、数値であることを識別するフィーダの圧縮符号、全角'半角ビットの圧縮符 号、カンマ有無ビットの圧縮符号、桁数の圧縮符号、各桁の数字の圧縮符号、小数 点を含む場合は小数点の圧縮符号などからなる圧縮情報に圧縮する。なお、各圧縮 化帳票ファイル Fi内の数値も同様な規則で圧縮されている。また、全角'半角ビット および圧縮符号、カンマ有無ビットは一律「0」(OFF)としておく。
[0171] また、検出部 2703は、取得部 2701によって取得された境界を規定する数値の桁 数および先頭数字を検出する。たとえば、数値 Nが N= 12, 345である場合、桁数は 「5」であり、先頭数字は「1」である。また、数値に小数が含まれている場合、小数点 以下の桁数も計数する。たとえば、数値 Nが N= 12, 345. 67である場合、桁数は「 7」であり、先頭数字は「1」である。また、先頭桁は最上位の 1桁とした力 先頭からの 連続する複数の上位桁としてもよい。たとえば、数値 N (N= 12, 345)では、先頭数 字は、「12」としてもよい。
[0172] また、中間数値群判断部 2704は、取得部 2701によって取得された数値範囲に中 間数値群が含まれているカゝ否かを判断する。ここで、中間数値群とは、数値範囲の 下限数値を含む数値群 (以下、「下限数値群」と称す)と、数値範囲の上限数値を含 む数値群 (以下、「上限数値群」と称す)との間に存在する数値群である。下限数値 群と上限数値群との桁数が相違していれば、中間数値群が存在すると判断する。ま た、桁数が同一であっても、先頭数字が相違していれば、中間数値群が存在すると 判断する。
[0173] たとえば、数値範囲が『3, 700以上 6, 300以下』である場合、下限数値群として 4 桁'先頭数字 3の数値群と、上限数値群として 4桁'先頭数字 6の数値群とが検出され る。この場合、中間数値群として、 4桁'先頭数字 4の数値群と 4桁'先頭数字 5の数値 群とが数値範囲内に存在することとなる。
[0174] また、数値範囲が『3, 700以上 16, 300以下』である場合、下限数値群として 4桁' 先頭数字 3の数値群と、上限数値群として 5桁'先頭数字 1の数値群とが検出される。 この場合、中間数値群として、 4桁'先頭数字 4の数値群〜 4桁'先頭数字 9の数値群 が数値範囲内〖こ存在することとなる。
[0175] また、数値範囲が『3, 700以上 4, 300以下』である場合、下限数値群として 4桁' 先頭数字 3の数値群と、上限数値群として 4桁'先頭数字 4の数値群とが検出される。 この場合、中間数値群は存在しない。
[0176] 同様に、数値範囲が『3, 700以上 3, 900以下』である場合、下限数値群として 4桁 •先頭数字 3の数値群と、上限数値群として 4桁'先頭数字 3の数値群とが検出される 。すなわち、下限数値群および上限数値群が同一の数値群となる。この場合も、中間 数値群は存在しない。
[0177] また、出現マップ抽出部 2705は、数値群の出現マップの中から、検出部 2703によ つて検出された桁数および先頭数字に応じた出現マップを抽出する。たとえば、検出 部 2703により、桁数「5」で先頭数字「1」が検出された場合、 5桁 '先頭数字 1の数値 群に関する出現マップを抽出する。また、中間数値群が存在する場合、中間数値群 に関する出現マップも抽出する。
[0178] 省略マップ設定部 2706は、中間数値群に関する出現マップに基づいて、省略マツ プを設定する。省略マップとは、下限数値群に関する出現マップや上限数値群に関 する出現マップとの論理積を演算するためのマップである。省略マップ自体は、数値 群に関する出現マップ 503と同様、帳票ファイル fiにおける存否をビットの ONZOF Fであらわしている。したがって、 ONになっているビットに対応する帳票ファイル fiに は、中間数値群内の数値が存在していることをあらわしており、 OFFになっているビ ットに対応する帳票ファイル fiには、中間数値群内の数値が存在しないことをあらわし ている。
[0179] 省略マップは、具体的には、中間数値群に関する出現マップの論理和を演算する ことにより中間結果マップを算出し、この中間結果マップ内のビットを反転することに より、省略マップを設定する。なお、中間数値群に関する出現マップ力 S1つしか存在 しない場合、当該出現マップ内のビットを反転することにより省略マップを設定するこ とができる。また、中間数値群に関する出現マップがない場合、全ビット OFFの省略 マップを設定する。
[0180] また、下限 Z上限マップ生成部 2707は、下限マップおよび上限マップを生成する 。ここで、下限マップとは、下限数値群に関する出現マップ (下限数値群マップ)と省 略マップとの論理積により得られるマップであり、上限マップとは、上限数値群に関す る出現マップ(上限数値群マップ)と省略マップとの論理積により得られるマップであ る。この論理積演算により、下限マップは下限数値群内数値のみの存否をあらわす マップとなり、上限マップは上限数値群内数値のみの存否をあらわすマップとなる。
[0181] また、特定部 2708は、複数の圧縮化検索対象ファイルの中から、検出部 2703に よって検出された桁数および先頭数字を満たす数値群内の数値が存在する圧縮ィ匕 検索対象ファイルを特定する。具体的には、下限マップ内のビットのうち、 ONになつ て ヽるビットに対応する帳票ファイル fiを特定し、圧縮化帳票ファイル群 Fの中から圧 縮化帳票ファイル Fiを抽出する。同様に、上限マップ内のビットのうち、 ONになって いるビットに対応する帳票ファイル fiを特定し、圧縮化帳票ファイル群 Fの中から圧縮 化帳票ファイル Fiを抽出する。
[0182] また、圧縮情報検索部 2709は、特定部 2708によって特定された圧縮化帳票ファ ィル Fiの中から、ファイル内数値に関する圧縮情報を検索する。圧縮化帳票ファイル fi内においては、ファイル内数値は、フィーダの圧縮符号、全角'半角フラグの圧縮 符号、カンマフラグの圧縮符号、桁数の圧縮符号、各桁の数字の圧縮符号などから なる圧縮情報により圧縮されている。圧縮情報検索部 2709は、ファイル内数値に関 する圧縮情報 (たとえば、フィーダの圧縮符号のみ)を検出することで、ファイル内数 値に関する圧縮情報を抽出する。
[0183] また、境界条件判断部 2710は、数値圧縮部 2702によって圧縮された境界を規定 する数値の圧縮情報と、圧縮情報検索部 2709によって検索されたファイル内数値 の圧縮情報とを比較することにより、ファイル内数値が境界を規定する数値との境界 条件を充足しているカゝ否かを判断する。境界条件とは、(境界を規定する数値)以上 、以下、より大きい、より小さいといった境界を規定する数値との大小関係をあらわす 条件である。
[0184] たとえば、まず、桁数の数字の圧縮符号どうしを比較することにより、圧縮元となる 数値どうしの大小を比較する。また、同一桁数である場合、先頭数字の圧縮符号どう しを比較することにより、圧縮元となる数値どうしの大小を比較する。また、先頭数字 が同一である場合、順次、つぎの桁の数字どうしを比較することにより、圧縮元となる 数値どうしの大小を比較する。これにより、ファイル内数値が境界を規定する数値との 境界条件を充足している力否かを判断することができる。
[0185] また、全角 ·半角ビットおよび圧縮符号、カンマ有無ビットは一律「0」(OFF)として あるため、ファイル内数値の圧縮情報との比較の際、ファイル内数値の圧縮情報に おいて、全角'半角ビットおよび圧縮符号、カンマ有無ビットを「0」(OFF)に設定する 。これにより、全角 '半角の相違やカンマの有無を考慮することなぐ数値検索をおこ なうことができる。
[0186] また、決定部 2711は、境界条件判断部 2710によって判断された判断結果に基づ いて、特定部 2708によって特定された圧縮ィ匕検索対象ファイル Fiを、数値範囲内の 数値を含むファイルに決定する。具体的には、ファイル内数値が境界を規定する数 値との境界条件を充足した場合、特定部 2708によって特定された圧縮化検索対象 ファイル Fiを、数値範囲内の数値を含むファイルに決定する。この決定処理では、出 現マップと同様、帳票ファイルに対応するビット列であらわされる下限比較結果マップ および上限比較結果マップを用いる。初期設定として全ビットを OFFにしておく。
[0187] そして、圧縮ィ匕帳票ファイル Fiにお 、て、ファイル内数値が下限数値との境界条件 を充足した場合、下限比較結果マップ内の当該圧縮化帳票ファイル Fiに対応するビ ットを ONにする。同様に、ファイル内数値が上限数値との境界条件を充足した場合 、上限比較結果マップ内の当該圧縮ィ匕帳票ファイル Fiに対応するビットを ONにする
[0188] そして、決定部 2711は、最終的に得られた下限比較結果マップと上限比較結果マ ップと中間結果マップが存在する場合には中間結果マップとの論理和を演算するこ とにより、数値範囲内の数値が存在する圧縮ィ匕帳票ファイル Fiを決定することができ る。
[0189] なお、ファイル構成データ特定部 2109は、決定部 2711により数値範囲内の数値 が存在する圧縮ィ匕帳票ファイル Fiが決定された場合、境界を規定する数値との境界 条件を満足したファイル内数値が存在する帳票データ gjのページ番号 jおよび当該 帳票データ gjが属する帳票ファイル fiのファイル番号 iを特定する。
[0190] (数値範囲の大小比較例)
つぎに、数値範囲の第 1の大小比較例について説明する。ここでは、数値範囲を特 定する下限の数値と上限の数値とが同一桁数で、かつ、先頭桁の数字が異なる場合 を例にして説明する。図 28— 1〜図 28— 4は、数値範囲の大小比較例を示す説明 図である。ここでは、例として、数値範囲『3, 700円以上 6, 300円以下』が与えられ たとして、当該数値範囲で指定された範囲の金額 (数値)を含む圧縮化帳票ファイル Fiを検索する例である。なお、数値範囲の下限数値の数値情報「3, 700円」および 上限数値の数値情報「6, 300円」は、ともに図 16— 3に示した圧縮処理により圧縮さ れる。
[0191] 図 28— 1において、まず、数値範囲『3, 700円以上 6, 300円以下』について、中 間数値群の出現マップを抽出する。具体的には、下限数値群の出現マップとなる 4 桁 ·先頭数字 3マップ M43と上限数値群の出現マップとなる 4桁 ·先頭数字 6マップ M46との間の 4桁 ·先頭数字 4マップ M44および 4桁 ·先頭数字 5マップ M45を、中 間数値群の出現マップとして抽出する。
[0192] 4桁 '先頭数字 3マップ M43は、 4桁 '先頭数字 3の数値を有する帳票ファイル fiの 存否をあらわしている。 4桁'先頭数字 4マップ M44は、 4桁'先頭数字 4の数値を有 する帳票ファイル fiの存否をあらわしている。 4桁 ·先頭数字 5マップ M45は、 4桁 '先 頭数字 5の数値を有する帳票ファイル fiの存否をあらわしている。 4桁'先頭数字 6マ ップ M46は、 4桁 ·先頭数字 6の数値を有する帳票ファイル fiの存否をあらわして!/、る
[0193] ここで、 4桁 ·先頭数字 3マップ M43および 4桁 ·先頭数字 6マップ M46は、大小比 較に用いる出現マップである。また、 4桁 '先頭数字 4マップ M44および 4桁 '先頭数 字 5マップ M45は、論理和をとつて中間結果マップ M01とする。中間結果マップ MO 1は、数値 4000〜5999が存在する帳票ファイル fiの存否をあらわしている。そして、 この中間結果マップ M01内のビットを反転させることで、省略マップ M02を得る。
[0194] 図 28— 2では、図 28— 1で得られた 4桁 ·先頭数字 3マップ M43と省略マップ M02 との論理積をとることで、下限マップ M03を得る。省略マップ M02との論理積をとるこ とで、中間数値群内の数値を有する帳票ファイルを除外することができる。
[0195] この下限マップ M03において、ビットが ONである圧縮化帳票ファイル Fiを抽出す る。この圧縮化帳票ファイル Fiを先頭力もサーチしてフィーダ(図 28 - 2では「x' B'」 )の圧縮符号「1011」を探索する。フィーダの圧縮符号「1011」が探索されると、その フィーダの圧縮符号「1011」を先頭とする圧縮情報 2801を読み出す。この圧縮情報 2801のうち、全角 ·半角ビットおよびカンマ有無ビットが「1」である場合、「0」に変換 することでマスクする。この変換後の圧縮情報を比較対象圧縮情報 2810と称す。
[0196] そして、圧縮ィ匕帳票ファイル Fi内の数値情報「3, 300円」を圧縮した比較対象圧縮 情報 2810と、下限の数値情報「3, 700円」を圧縮処理した下限の圧縮情報 2802と を比較する。まず、比較対象圧縮情報 2810および下限の圧縮情報 2802のフィーダ ,桁数,先頭数字の圧縮符号どうしの一致比較をおこなう。この段階でいずれか一つ の圧縮符号が不一致であれば、圧縮化帳票ファイル Fi内のつぎのフィーダをサーチ する。
[0197] 一方、フィーダの圧縮符号が一致していれば、同種の数値情報であることがわかり 、さらに桁数が一致していれば、比較対象圧縮情報 2810は少なくとも 4桁数字の数 値の圧縮形式であることがわかり、さらに先頭数字が一致していれば、比較対象圧縮 情報 2810は少なくとも先頭数字が「3」の数値の圧縮形式であることがわかる。したが つて、フィーダ,桁数,および先頭数字の圧縮符号がすべて一致した場合、同一桁 における数字の圧縮符号の大小比較をおこなう。
[0198] この例では、第 2数字の圧縮符号を比較することで、比較対象圧縮情報 2802のフ アイル内の数値情報「3, 300円」よりも下限数値の数値情報「3, 700円」が大きいこ とがわかる。この場合、下限比較結果マップ M04において、圧縮化帳票ファイル Fi に対応するビットは「0」のままである。そして、圧縮ィ匕帳票ファイル Fi内のつぎのフィ ーダをサーチして、下限数値の数値情報「3, 700円」以上の数値情報がある場合、 下限比較結果マップ M04において、圧縮化帳票ファイル Fiに対応するビットを「1」と する。
[0199] この比較処理を、下限マップ M03内においてビットが立っているすべての圧縮化 帳票ファイル F0〜Fnにつ!/、ておこなうことで、下限比較結果マップ M04を得ること ができる。このように、下限マップ M03から 4桁でかつ先頭数字が「3」である数値を 含む圧縮化帳票ファイル Fiを抽出することで、帳票ファイル fiを圧縮形式のまま検索 することができる。
[0200] 図 28— 3では、図 28— 1で得られた 4桁 ·先頭数字 6マップ M46と省略マップ M02 との論理積をとることで、上限マップ M05を得る。省略マップ M02との論理積をとるこ とで、中間数値群内の数値を有する帳票ファイルを除外することができる。
[0201] この上限マップ M05において、ビットが ONである圧縮化帳票ファイル Fiを抽出す る。この圧縮化帳票ファイル Fiを先頭力もサーチしてフィーダ(図 28 - 3では「x' B'」 )の圧縮符号「1011」を探索する。フィーダの圧縮符号「1011」が探索されると、その フィーダの圧縮符号「1011」を先頭とする圧縮情報 2803を読み出す。この圧縮情報 2803のうち、全角 ·半角ビットおよびカンマ有無ビットが「1」である場合、「0」に変換 することでマスクする。この変換後の圧縮情報を比較対象圧縮情報 2830と称す。
[0202] そして、圧縮ィ匕帳票ファイル Fi内の数値情報「6, 200円」を圧縮した比較対象圧縮 情報 2830と、上限の数値情報「6, 300円」を圧縮処理した上限の圧縮情報 2804と を比較する。まず、比較対象圧縮情報 2830および上限の圧縮情報 2804のフィーダ ,桁数,先頭数字の圧縮符号どうしの一致比較をおこなう。この段階でいずれか一つ の圧縮符号が不一致であれば、圧縮化帳票ファイル Fi内のつぎのフィーダをサーチ する。
[0203] 一方、フィーダの圧縮符号が一致していれば、同種の数値情報であることがわかり 、さらに桁数が一致していれば、比較対象圧縮情報 2830は少なくとも 4桁数字の数 値の圧縮形式であることがわかり、さらに先頭数字が一致していれば、比較対象圧縮 情報 2830は少なくとも先頭数字が「3」の数値の圧縮形式であることがわかる。したが つて、フィーダ,桁数,および先頭数字の圧縮符号がすべて一致した場合、同一桁 における数字の圧縮符号の大小比較をおこなう。
[0204] この例では、第 2数字の圧縮符号どうしを比較することで、比較対象圧縮情報 2830 の数値情報「6, 200円」よりも上限数値の数値情報「6, 300円」が大きいことがわか る。この場合、上限比較結果マップ M06において、圧縮化帳票ファイル Fiに対応す るビットを「1」とする。
[0205] この比較処理を、上限マップ M05内においてビットが立っているすべての圧縮化 帳票ファイル Fiにつ 、ておこなうことで、上限比較結果マップ M06を得ることができる 。このように、上限マップ M05から 4桁でかつ先頭数字が「6」である数値を含む圧縮 化帳票ファイル Fiを抽出することで、帳票ファイル fiを圧縮形式のまま検索することが できる。
[0206] 図 28— 4では、下限比較結果マップ M04、中間結果マップ M01、および上限比較 結果マップ M06の論理和をとることで、統合結果マップ M07を得ている。これにより 、数値範囲『3, 700円以上 6, 300円以下』内の数値情報を含む帳票ファイル fiを圧 縮形式のまま特定することができる。
[0207] なお、上述した図 28— 1〜図 28— 4の例では、数値範囲を特定する下限数値と上 限数値とが同一桁数で、かつ、先頭桁の数字が異なる場合を例にして説明したが、 上限の数値の桁数が大き!、場合 (または下限の数値の桁数が小さ!、場合)も同様に 比較することができる。たとえば、数値範囲が『3, 700円以上 64, 000円以下』であ る場合、 4桁先頭数字 4マップ〜 4桁先頭数字 9マップと 5桁先頭数字 1マップ〜 5桁 先頭数字 5マップまでを中間数値群の出現マップとして抽出すればよい。
[0208] また、数値範囲が『3, 700円以上 3, 900円以下』や『3, 700円以上 4, 500円以 下』など、中間数値群が存在しない場合は、中間結果マップ M01が存在しないため 、省略マップ M02の全ビットを OFFにする。そして、統合結果マップ M07を得る場合 も中間結果マップ M01が存在しな 、ため、下限比較結果マップ M04と上限比較結 果マップ M06との論理和により統合結果マップ M07を演算する。
[0209] (検索結果表示部 623の詳細な機能的構成)
つぎに、図 6に示した検索結果表示部 623の詳細な機能的構成について説明する 。図 29は、図 6に示した検索結果表示部 623の詳細な機能的構成を示すブロック図 である。図 29において、検索結果表示部 623は、読出し部 2901と、ファイル伸長部 2902と、フアイノレ表示咅 2903と、力ら構成されて ヽる。
[0210] まず、読出し部 2901は、検索候補選択部 2111によって選択された検索候補であ る項目データを、圧縮ィ匕帳票ファイル群 Fの圧縮ィ匕帳票ファイル Fiから読み出す。ま た、ファイル伸長部 2902は、読出し部 2901によって読み出された項目データを、ハ フマン木 1801によって伸長する。ファイル表示部 2903は、ファイル伸長部 2902に よって伸長された項目データを検索結果として表示する。
[0211] (情報検索処理手順)
つぎに、この発明の実施の形態に力かる情報検索装置 600の情報検索処理手順 について説明する。図 30は、この発明の実施の形態に力かる情報検索装置 600の 情報検索処理手順を示すフローチャートである。図 30において、まず、数値'文字出 現頻度管理データ生成部 612により、数値 ·文字出現頻度管理データ生成処理を実 行する(ステップ S 3001)。
[0212] そして、圧縮 Z暗号ィ匕部 613により、圧縮 Z暗号ィ匕処理を実行する (ステップ S300
2)。このあと、検索初期化部 621により、検索初期化処理を実行する (ステップ S300
3)。つぎに、検索実行部 622により、検索処理を実行する (ステップ S3004)。 [0213] 最後に、検索結果表示部 623により、検索結果表示処理を実行する (ステップ S30 05)。なお、検索結果表示処理では、検索候補一覧から選択された検索候補 (項目 データ)を圧縮帳票ファイル F も読み出して、ハフマン木 1810にて伸長することに より、項目データの全文を検索結果として表示することができる。
[0214] つぎに、図 30に示した数値 ·文字出現頻度管理データ生成処理 (ステップ S3001) の詳細な処理手順について説明する。図 31は、図 30に示した数値 ·文字出現頻度 管理データ生成処理 (ステップ S3001)の詳細な処理手順を示すフローチャートであ る。図 31において、まず、初期化処理を実行する (ステップ S3101)。具体的には、 8 , 16ビットの数値'文字データ、連字データ、バイナリデータの区点対応の集計領域 を確保し、出現頻度と出現マップのセグメント等を初期化する。また、数値'文字デー タのコードをセットし、各種カウンタを初期化する。
[0215] つぎに、数値'文字出現頻度集計処理を実行する (ステップ S3102)。この数値'文 字出現頻度集計処理の詳細な処理手順については後述する。この数値 ·文字出現 頻度集計処理のあと、数値'文字出現頻度管理データ 500の領域確保とその領域の 初期化を実行し (ステップ S3103)、 8, 16ビットの数値'文字データ、連字データ、バ イナリデータの文字コードと出現頻度をセットする (ステップ S3104)。
[0216] そして、出現マップの各セグメントを連結し (ステップ S3105)。連字領域の連字デ 一タを高出現頻度順にソートする (ステップ S3106)ことで、 256種の連字データを選 択する。これにより、連字データの削減を図ることができる。
[0217] つぎに、連字 Z外字置換をおこなうとともに、連字 Z外字置換テーブル 640を生成 する (ステップ S3107)。具体的には、高出現頻度順に連字データを外字データに置 換することにより、連字外字データと連字 Z外字置換テーブル 640を生成する。
[0218] そして、低出現頻度の連字データ、すなわち外字に置換されなかった連字データ を単一文字データに分解し、該当する文字領域に割り振る補正をおこなう (ステップ S 3108)。すなわち、低出現頻度の連字データを表音文字データに分割し、当該文字 データの頻度の加算と出現マップの OR演算を実行する。
[0219] このあと、数値 ·文字データを高出現頻度順にソートし (ステップ S3109)、頻度 0回 の数値'文字データをカットして、連字外字データとバイナリデータとを結合し (ステツ プ S3110)、この結合によって得られた数値 ·文字出現頻度管理データ 500をフアイ ノレ【こ出力する(ステップ S3111)。これ【こ Jり、ステップ S 3002【こ移行する。
[0220] つぎに、上述した数値 ·文字出現頻度集計処理 (ステップ S3102)の詳細な処理手 順について説明する。図 32— 1は、上述した数値'文字出現頻度集計処理 (ステップ S3102)の詳細な処理手順を示すフローチャート(前半)である。図 32— 1において、 まず、先頭帳票ファイル fOをオープンする(ステップ S3201)。
[0221] つぎに、オープンされた帳票ファイル力も順次データを抽出する。抽出されたデー タがバイナリデータである場合 (ステップ S3202 : Yes)、当該バイナリデータの出現 頻度を加算し、当該バイナリデータの出現マップにおけるオープン中のファイルに対 応するビットを「1」に設定し、さらに、バイトカウンタを加算する (ステップ S3203)。そ して、図 32— 2【こ示すステップ S 3211【こ移行する。
[0222] 一方、ステップ S3202において、抽出されたデータがバイナリデータではない場合
(ステップ S3202 :No)、数値であるか否かを判定する(ステップ S3204)。たとえば、 数字のみ力もなる数字列であれば、数値と判定する。また、数字のほか「,」(カンマ) や「-」(小数点)が数字列に含まれている場合も、数値と判定する。
[0223] そして、数値である場合 (ステップ S3204 : Yes)、当該数値の出現頻度を加算し、 当該数値の出現マップにおけるオープン中のファイルに対応するビットを「1」に設定 し、さらに、バイトカウンタを加算する (ステップ S3205)。そして、図 32— 2に示すステ ップ S 3211に移行する。
[0224] 一方、ステップ S3204にお 、て、抽出されたデータが数値ではな 、場合 (ステップ S3204 : No)、連字データであるか否かを判定する(ステップ S3206)。連字データ である場合 (ステップ S3206 :Yes)、当該連字データの出現頻度を加算し、当該連 字データの出現マップにおけるオープン中のファイルに対応するビットを「1」に設定 し、さらに、バイトカウンタを加算する (ステップ S3207)。そして、図 32— 2に示すステ ップ S 3211に移行する。
[0225] 一方、ステップ S3206において、抽出されたデータが連字データでない場合 (ステ ップ S3206 : No)、漢字データであるか否かを判定する(ステップ S3208)。漠字デ ータでない場合 (ステップ S3208 :No)、当該データは表音文字データであるため、 その表音文字データの出現頻度を加算し、当該表音文字データの出現マップにお けるオープン中のファイルに対応するビットを「1」に設定し、ノイトカウンタを加算する (ステップ S3209)。そして、図 32— 2【こ示すステップ S 3211【こ移行する。
[0226] 一方、ステップ S3208において、抽出されたデータが漢字データである場合 (ステ ップ S3208 :Yes)、当該漢字データの出現頻度を加算し、当該漢字データの出現 マップにおけるオープン中のファイルに対応するビットを「1」に設定し、ノイトカウンタ をカロ算する(ステップ S3210)。そして、図 32— 2〖こ示すステップ S3211〖こ移行する。
[0227] 図 32— 2は、数値 ·文字出現頻度集計処理 (ステップ S3202)の詳細な処理手順を 示すフローチャート(後半)である。図 32— 2において、出現マップのセグメントのセグ メントカウンタを加算し (ステップ S3211)、セグメント終了力否力、すなわちセグメント の集計が終了した力否かを判断する (ステップ S3212)。セグメントの集計が終了した 場合 (ステップ S3212 :Yes)、出現マップのセグメントをファイルに追カ卩出力し、セグ メントカウンタをクリアする(ステップ S3213)。そして、ステップ S3214に移行する。
[0228] 一方、セグメントの集計が終了していない場合 (ステップ S3212 :No)、またはステツ プ S3213のあと、ブロック終了か否か、たとえば、集計した数値'文字データ数が 40 00文字に到達したカゝ否かを判断する (ステップ S3214)。
[0229] そして、ブロック終了した場合 (ステップ S3214 : Yes)、当該ブロックデータを有す る帳票ファイル fiのファイル番号 i、当該ブロックデータのブロック番号 m、オフセット、 文字数、およびレングス力 なるブロック情報を生成してファイルに追カ卩出力するとと もに、バイトカウンタをクリアする(ステップ S3215)。そして、ステップ S3216に移行す る。
[0230] 一方、ブロック終了していない場合 (ステップ S3214 :No)、またはステップ S3215 のあと、ファイル終了か否力 すなわち、現在オープンしている帳票ファイル fiの集計 が終了した力否かを判断する(ステップ S3216)。現在オープンしている帳票ファイル fiの集計が終了して ヽな 、場合 (ステップ S3216: No)、図 32— 1に示したステップ S 3202に戻って次のデータを抽出し、抽出したデータの種類を特定して、集計する (ス テツプ S3202〜S3210)。
[0231] 一方、ステップ S3216において、現在オープンしている帳票ファイルの集計が終了 した場合 (ステップ S3216 : Yes)、集計終了力否力 すなわち、現在オープンしてい る帳票ファイル fiをクローズする(ステップ S3217)。このあと、すべての帳票ファイル f 0〜fnからの集計が終了した力否かを判断する(ステップ S3218)。
[0232] すべての帳票ファイル fO〜fnの集計が終了して!/、な!/、場合 (ステップ S3218: No) 、つぎのファイル番号 i (i=i+ l)の帳票ファイル fiをオープンし (ステップ S3219)、図 32— 1に示したステップ S3202に戻って次のデータを抽出し、抽出したデータの種 類を特定して、集計する(ステップ S3202〜S3210)。
[0233] 一方、ステップ S3218において、すべての帳票ファイル fO〜fnの集計が終了した 場合 (ステップ S3218 :Yes)、出現マップ 510のセグメントをファイルに追加出力し( ステップ S3220)、ステップ S3203に移行することで一連の処理を終了する。
[0234] つぎに、図 30に示した圧縮 Z暗号化処理 (ステップ S3002)の詳細な処理手順に ついて説明する。図 33は、図 30に示した圧縮 Z暗号ィ匕処理 (ステップ S3002)の詳 細な処理手順を示すフローチャートである。図 33において、まず、数字や小数点、フ ィーダ (以下、「数字等」と称す)の出現頻度の補正をおこなう(ステップ S3301)。そし て、その他の文字データの出現頻度を補正する (ステップ S3302)。
[0235] そして、出現頻度順に混合領域 812の数値 ·文字データをソートする (ステップ S33 03)。つぎに、低出現頻度の数値 ·文字データを 8ビットに分解し、該当するバイナリ データの出現頻度に加算する (ステップ S3304)。そして、混合領域 812の数値'文 字データ、連字外字データ、バイナリデータを連結し、出現頻度順にソートする (ステ ップ S3305)。
[0236] このあと、ソートされた数値'文字データごとに、補正された出現頻度に基づいて生 起確率を演算し (ステップ S3306)、この生起確率に基づいて、 8, 16ビットの数値' 文字データに共通のハフマン木を生成する(ステップ S3307)。
[0237] そして、各帳票ファイルの圧縮処理を実行する (ステップ S3308)。この圧縮処理の 具体的な手順は図 33において後述する。そして、数値'文字出現頻度管理データ 5 00を暗号ィ匕する (ステップ S3309)。具体的には、数値'文字出現頻度管理データ 5 00の暗号ィ匕領域 (数値 ·文字データおよび出現頻度の領域)を、マスタキーを用いて 排他的論理和 (XOR)により暗号ィ匕する。 [0238] そして、連字 Z外字置換テーブル 640を暗号ィ匕する (ステップ S3310)。具体的に は、連字 Z外字置換テーブル 640の暗号ィ匕領域を、マスタキーを用いて排他的論理 和 (XOR)により暗号化する。そして、検索初期化処理 (ステップ S3003)に移行し、 一連の処理を終了する。
[0239] つぎに、図 33のステップ S3308に示した圧縮処理の詳細な処理手順について説 明する。図 34は、図 33のステップ S3308に示した圧縮処理の詳細な処理手順を示 すフローチャートである。まず、ファイル番号 iを i=0とし (ステップ S3401)、帳票ファ ィル fiを、たとえば 4000文字ごとにブロック化する(ステップ S3402)。つぎに、帳票 ファイル fi内のデータを順次読み込み、読み込んだデータがフィーダであるか否かを 判断する(ステップ S3403)。
[0240] フィーダであると判断された場合 (ステップ S3403: Yes)、フィーダに続く連続する 数字を数値として読み込んで (ステップ S3404)、全角 ·半角、数値の桁数を検出す る(ステップ S3405)。そして、ハフマン木による数値圧縮を実行し (ステップ S3406) 、ステップ S 3408に移行する。
[0241] 一方、フィーダでないと判断された場合 (ステップ S3403 : No)、当該データはその 他の文字データであるため、ハフマン木を用いて文字データ圧縮を実行し (ステップ S3407)、ステップ S 3408に移行する。
[0242] そして、ステップ S3408において、当該ブロックにおける圧縮が終了したか否かを 判断する(ステップ S3408)。圧縮が終了していない場合 (ステップ S3408 : No)、ス テツプ S3403に戻って、つぎのデータを読み込む。一方、圧縮終了である場合 (ステ ップ S3408 : Yes)、未処理ブロックがあるか否かを判断する(ステップ S3409)。
[0243] 未処理ブロックがある場合 (ステップ S3409: Yes)、当該未処理ブロックを読み込 んで (ステップ S3410)、ステップ S3403に戻って、データの読み込みをおこなう。一 方、未処理ブロックがない場合 (ステップ S3409 : No)、ファイル番号 iをインクリメント し (ステップ S 3411 )、 i > nか否かを判断する(ステップ S 3412)。
[0244] i>nでない場合 (ステップ S3412 :No)、ステップ S3402に戻って、つぎの帳票ファ ィル fiをブロック化する。一方、 i>nである場合 (ステップ S3412 :Yes)、図 33に示し たステップ S3309に移行する。これにより、圧縮処理における一連の処理を終了する [0245] つぎに、図 30に示した検索初期化処理 (ステップ S3003)の詳細な処理手順につ いて説明する。図 35は、図 30に示した検索初期化処理 (ステップ S3003)の詳細な 処理手順を示すフローチャートである。
[0246] 図 35において、まず、検索初期化処理の起動を待ち受け (ステップ S3501 : No)、 起動した場合 (ステップ S3501: Yes)、圧縮 Z暗号化処理において暗号化された暗 号ィ匕数値'文字出現頻度管理データ 650を復号ィ匕する (ステップ S3502)。具体的 には、暗号ィ匕数値'文字出現頻度管理データ 650の暗号ィ匕領域 (数値'文字データ および出現頻度の領域)を、暗号ィ匕したときのマスタキーを用いて排他的論理和 (X OR)により復号する。
[0247] つぎに、暗号ィ匕連字 Z外字置換テーブル 660を復号ィ匕する (ステップ S3503)。具 体的には、暗号ィ匕連字 Z外字置換テーブル 660の暗号ィ匕領域を、暗号ィ匕したときの マスタキーを用いて排他的論理和 (XOR)により復号する。
[0248] つぎに、圧縮 Z暗号化処理で示したステップ S3401〜S3405までの処理と同様の 処理を実行する。すなわち、高出現頻度順に数値 ·文字データをソートし (ステップ S 3504)、低出現頻度の数値 ·文字データを 8ビットに分解し、該当するバイナリデータ の出現頻度に加算する (ステップ S3505)。
[0249] そして、数値'文字データ、連字データ、バイナリデータを連結し、高出現頻度順に ソートする (ステップ S3506)。このあと、数値'文字データごとに、出現頻度に基づい て生起確率を演算し (ステップ S3507)、この生起確率に基づいて、 8, 16ビットの数 値'文字データに共通のハフマン木を生成する(ステップ S3508)。
[0250] このあと、出現マップ 510の設定処理を実行する(ステップ S3509)。具体的には、 第 1の区点対応テーブルおよび第 2の区点対応テーブルの領域確保、各文字デー タの出現順位の第 1の区点対応テーブルへのセット、各数値データの出現順位の第 2の区点対応テーブルへのセット、復号された数値 ·文字出現頻度管理データ 500 の出現マップのメモリ展開、当該出現マップと第 1の区点対応テーブルおよび第 2の 区点対応テーブルとのリンクを実行する。このあと、検索処理 (ステップ S3004)に移 行して、一連の処理を終了する。 [0251] つぎに、図 30に示した検索処理 (ステップ S3004)の詳細な処理手順について説 明する。図 36は、図 30に示した検索処理 (ステップ S3004)の詳細な処理手順を示 すフローチャートである。検索初期化処理 (ステップ S3003)のあと、図 36において、 まず、検索モード画面の呼び出しをおこない (ステップ S3601)、数値検索モードまた は文字検索モードの選択を待ち受ける (ステップ S3602)。
[0252] 数値検索モードが選択された場合 (ステップ S3602: Yes)、図 40に示すステップ S 4001に移行する。一方、文字検索モードが選択された場合 (ステップ S3602 : No)、 検索キーワードの入力を受け付ける(ステップ S3603)。
[0253] 検索キーワードが複数でない場合 (ステップ S3604 : No)、ステップ S3606に移行 する。一方、検索キーワードが複数である場合 (ステップ S3604 : Yes)、各キーヮー ドの文字列を連結して(ステップ S3605)、ステップ S3606に移行する。
[0254] このあと、ステップ S3606において、検索キーワード内に連字データがない場合 (ス テツプ S3606 :No)、ステップ S3608に移行する。一方、連字データがある場合 (ス テツプ S3606 : Yes)、連字 Z外字置換テーブル 640を用いて、その連字データを 2 文字の外字データに置換して(ステップ S3607)、ステップ S3608〖こ移行する。
[0255] このあと、ステップ S3608において、検索キーワードを単一文字データに分解して 、出現マップ力も各文字データの各帳票ファイルにおける存否ビット列を読み取る (ス テツプ S3608)。そして、各文字データの存否ビット列の論理積により、圧縮化帳票フ アイルを特定 (絞込み)する (ステップ S3609)。また、検索キーワードを検索初期化 処理 (ステップ S3003)において生成されたハフマン木で圧縮する(ステップ S3610)
[0256] つぎに、照合予測テーブル生成処理 (ステップ S3611)を実行する。この照合予測 テーブル生成処理の詳細な処理手順については図 37において後述する。照合予測 テーブルを生成後、ファイルカウンタを初期化する (ステップ S3612)。
[0257] このあと、ステップ S3609で特定された圧縮ィ匕帳票ファイル (以下、「特定圧縮化帳 票ファイル」と称す。)をオープンし (ステップ S3613)、オープンされた特定圧縮ィ匕帳 票ファイルの圧縮ブロックデータごとに、圧縮キーワードとの不一致判定処理をおこ なう(ステップ S3614)。この不一致判定処理にっ 、ては図 38にお!/、て後述する。 [0258] この不一致判定処理において、すべての圧縮ブロックデータについて不一致であ ると判定された場合 (ステップ S3615 :Yes)、ステップ S3618に移行する。一方、 1つ でも一致すると判定された場合 (ステップ S3615 :No)、当該一致すると判定された 圧縮ブロックデータを、ハフマン木を用いて伸長する(ステップ S3616)。そして、伸 長されたブロックデータと検索キーワードとを比較し、検索キーワードに一致した項目 データのファイル番号およびアンカーを記録して(ステップ S3617)、ステップ S3618 に移行する。
[0259] このあと、オープンしている特定圧縮化帳票ファイルをクローズし (ステップ S3618) 、ファイルカウンタを更新する(ステップ S3619)。ファイルカウンタの更新により、未処 理の特定圧縮ィ匕帳票ファイルがあると判断された場合 (ステップ S3620 : Yes)、ステ ップ S 3613に移行して、つぎの特定圧縮ィ匕帳票ファイルをオープンする。
[0260] 一方、未処理の特定圧縮化帳票ファイルがな!/、と判断された場合 (ステップ S3620 : No)、検索候補一覧を表示し (ステップ S3621)、ユーザ力もの選択入力を待ち受 ける(ステップ S3622)ことにより、検索結果表示処理 (ステップ S 3005)に移行して、 一連の処理を終了する。
[0261] このように、コンテンツが複数の帳票ファイル力 構成されて 、ても、単一の圧縮情 報 (数値 ·文字出現頻度管理データ 500)により共通化することができる。
[0262] また、サイズが大き!/、帳票ファイルでは文字データ数に応じてブロック化をおこな ヽ 、 8ビットコード、 16ビットコードまたは 32ビットコードの文字データが混在する検索対 象ファイルについてのハフマン圧縮技術を確立することができる。
[0263] また、サイズ (容量)ではなぐ文字データ数に応じたブロック化をおこない、帳票フ アイル内の各文字データの出現頻度の集計時に、文字データの種類 (8ビットコード、 16ビットコードまたは 32ビットコード)を判定し、出現頻度を集計することができる。
[0264] また、英和辞典での英字データなど出現頻度の高い 8ビットコードの文字データに 対しては、 Ox' FF * *,など 16ビットコードの文字データに置換し、ハフマン圧縮を おこなう。これにより、低出現率の 8ビットコードの文字データと区別して、効率的な圧 縮をおこなうことができる。
[0265] また、ポインタなどの非文字データはランダムな値であるため、 8ビットコードに置換 する。また、ハフマン木のサイズ縮小のため、出現頻度の低い 16ビットコードの文字 データを分割し、 8ビットコードの文字データに置換する。これにより、効率的な圧縮 をおこなうことができる。
[0266] また、圧縮のためのハフマン木の生成元である数値.文字出現頻度管理データ 50 0またはその一部を暗号化する。すなわち、コンテンツや、コンテンツ圧縮のためのハ フマン木を直接暗号ィ匕せず、ハフマン木の生成元を暗号ィ匕しているため、セキユリテ ィの向上を図ることができる。
[0267] また、数値 ·文字出現頻度管理データ 500をもとに、全文検索の高速ィ匕を図ること ができる。また、連続する表音文字データの出現頻度の高い 2文字の連字データを 外字データに置換した後、コンテンツ圧縮をおこなっているため、圧縮率の向上を図 ることがでさる。
[0268] また、連字データにより、オープン Zクローズするファイル数を削減することができ、 文字列の比較領域の縮小により全文検索の高速ィ匕を図ることができる。さらに、全文 検索は伸長後に外字データのままで文字列比較を行うことで、さらに検索速度の向 上を図ることができる。
[0269] (照合予測テーブル生成処理手順)
つぎに、上述した照合予測テーブル生成処理 (ステップ S3611)について詳細に 説明する。図 37は、照合予測テーブル生成処理手順を示すフローチャートである。 図 37において、まず、圧縮キーワード 2302の総シフト数を演算する(ステップ S370 Do具体的には、圧縮キーワード長とレジスタ Raのビット長と力も圧縮キーワード 230 2が保持されていないビット長(図 25の「 *」)を総シフト数として算出する。
[0270] つぎに、図 24に示したシフト操作の図表を参照して、照合間隔 (バイト数)を演算す る(ステップ S3702)。そして、圧縮キーワード 2302を、上記総シフト分 1ビットずっシ フトして、シフトテーブル 2500を作成する(ステップ S3703)。このシフトテーブル 25 00の各ビット列と圧縮キーワード 2302とを XOR演算して XORテーブル 2501を作成 する(ステップ S3704)。
[0271] そして、作成された XORテーブル 2501と XORテーブル 2501を構成する各ビット 列のシフト数力もなる部分判定テーブル 2502を作成する(ステップ S3705)。そして 、部分判定テーブル 2502を用いて、照合予測テーブル 2503を作成し (ステップ S3 706)、ステップ S3612へ移行する。
[0272] (圧縮ブロックデータと圧縮キーワードとの不一致判定処理手順)
つぎに、上述した圧縮ブロックデータと圧縮キーワードとの不一致判定処理 (ステツ プ S3614)について説明する。図 38は、圧縮ブロックデータと圧縮キーワードとの不 一致判定処理手順を示すフローチャートである。図 38において、まず、圧縮キーヮ ード 2302をレジスタ Raにセットする(ステップ S3801)。
[0273] つぎに、圧縮ブロックデータ 2312をシフトさせる照合間隔 (バイト数)をセットし (ステ ップ S 3802)、特定圧縮化帳票ファイル 2311のポインタを初期化する(ステップ S 38 03)。このあと、現在のポインタにしたがって、圧縮ブロックデータ 2312をレジスタ Rb にセットする(ステップ S3804)。そして、レジスタ Raとレジスタ Rbとを XOR演算して( ステップ S3805)、下位 8ビットのビット列 2330を抽出する(ステップ S3806)。
[0274] つぎに、抽出された下位 8ビットのビット列 2330と照合予測テーブル 2503とを照合 して、照合予測テーブル 2503内のビット列のうち、下位 8ビットのビット列 2330と一 致するビット列のシフト数を検出し、検出されたシフト数が「一 1」であるか否力、すな わち不一致である力否かを判断する(ステップ S3807)。
[0275] そして、シフト数が「ー1」である場合 (ステップ S3807 :Yes)、特定圧縮ィ匕帳票ファ ィル 2311のポインタを照合間隔分加算する (ステップ S3808)。そして、圧縮ブロック データ 2312がないか否かを判断する(ステップ S3809)。圧縮ブロックデータ 2312 力 sある場合 (ステップ S3809 :No)、ステップ S3804に戻る。一方、圧縮ブロックデー タ 2312力ない場合 (ステップ S3809 :Yes)、ステップ S3615に移行する。このステツ プ S3804〜ステップ S3809 :Noのループ〖こより、不一致であることを高速で照合す ることができ、検索速度の高速ィ匕を実現することができる。
[0276] また、ステップ S3807において、シフト数が「一 1」でない場合 (ステップ S3807 :No )、シフト数が0〜63でぁる場合(ステップ33810 : 0〜63)、すなゎち、部分一致とな る場合、当該シフト数を取得して (ステップ S3811)、全ビット不一致照合処理を実行 する (ステップ S3812)。全ビット不一致照合処理 (ステップ S3812)については後述 する。このあと、ステップ S3808に移行する。 [0277] また、ステップ S3810において、シフト数が 64である場合 (ステップ S3810 : 64)、 すなわち、重複部分一致となる場合、部分判定テーブル 2502のポインタを初期化し (ステップ S3813)、現在のポインタに対応する部分判定テーブル 2502の XOR結果 を取得する (ステップ S3814)。そして、対応するビット列と、現在のポインタに対応す る部分判定テーブル 2502の XOR結果とがー致するカゝ否かを判断する (ステップ S3 815)。不一致の場合 (ステップ S3815 :No)、ステップ S3818に移行する。
[0278] 一方、一致する場合 (ステップ S3815 :Yes)、その XOR結果に対応するシフト数を 部分判定テーブル 2502から取得して (ステップ S3816)、全ビット不一致照合処理 を実行する (ステップ S3817)。この全ビット不一致照合処理 (ステップ S3817)は、 全ビット不一致照合処理 (ステップ S3812)と同一であるため後述する。
[0279] そして、全ビット不一致照合処理 (ステップ S3817)のあと、部分判定テーブル 250 2のポインタをカ卩算する(ステップ S3818)。部分判定テーブル 2502の現在のポイン タが最終ポインタでない場合 (ステップ S3819 :No)、ステップ S3814に戻る。一方、 部分判定テーブル 2502の現在のポインタが最終ポインタである場合 (ステップ S 381 9 : Yes)、ステップ S 3808に移行する。
[0280] (全ビット不一致照合処理手順)
つぎに、上述した全ビット不一致照合処理 (ステップ S3812およびステップ S3817) について詳細に説明する。図 39は、全ビット不一致照合処理 (ステップ S3812およ びステップ S3817)を示すフローチャートである。図 39において、シフト数を 8で除算 することにより、その除数および余りを取得する (ステップ S3901)。
[0281] つぎに、特定圧縮ィ匕帳票ファイル 2311の現在のポインタに除数を加算し (ステップ S3902)、圧縮ブロックデータ 2312をレジスタ Rbにセットする(ステップ S3903)。そ して、セットされた圧縮ブロックデータ 2312を余りの値分シフトする(ステップ S3904)
[0282] つぎに、圧縮キーワード 2302をレジスタ Raにセットし (ステップ S3905)、両レジス タ Ra、 Rbにおいて照合対象外となるビットのマスクを OFFにする(ステップ S3906)。 そして、全ビットが一致する場合 (ステップ S3907 : Yes)、一致したアドレスを記録し( ステップ S3908)、ステップ S3808 (また ίま S3817)に移行する。一方、全ビット力ー 致しない場合 (ステップ S3907 :No)、ステップ S3808 (またはステップ S3817)に移 行する。
[0283] これにより、特定圧縮化帳票ファイル 2311に対して、コンピュータの CPU101が得 意であるバイト毎の操作をもとにした不一致照合の方式を実現することができる。すな わち、ビット毎の照合予測を目的に、入力された検索キーワード 2301を圧縮した圧 縮キーワード 2302とその圧縮キーワード 2302を 1ビット毎シフトしたデータの集合で あるシフトテーブル 2500との XOR演算をおこない、その演算結果をもとに不一致照 合をおこなう。そして、圧縮キーワード長に応じて、特定圧縮化帳票ファイル 2311と の照合間隔を長くすることにより不一致照合の高速ィ匕を図ることができる。
[0284] (数値検索モードにおける数値検索実行処理手順)
つぎに、この発明の実施の形態にカゝかる数値検索モードにおける数値検索実行処 理手順について説明する。図 40は、この発明の実施の形態に力かる数値検索モー ドにおける数値検索実行処理手順を示すフローチャートである。
[0285] 図 36におけるステップ S3602 : Yesのあと、取得部 2701により数値範囲を取得す る (ステップ S4001)。つぎに、検出部 2703により、数値範囲の境界を規定する数値 (下限数値、上限数値)の桁数および先頭数字を検出する (ステップ S4002)。そして 、数値圧縮部 2702により、下限数値および上限数値を圧縮する (ステップ S4003)。
[0286] このあと、出現マップ抽出部 2705により、出現マップ 510から下限数値群〜上限数 値群の出現マップを抽出する (ステップ S4004)。そして、中間数値群判断部 2704 により、中間数値群があるカゝ否かを判断する (ステップ S4005)。中間数値群があると 判断された場合 (ステップ S4005 : Yes)、省略マップ設定部 2706により、中間数値 群の出現マップの論理和をとることにより、中間結果マップを生成し (ステップ S4006 )、中間結果マップ内の全ビットを反転させて省略マップに変換する (ステップ S4007
) o
[0287] 一方、中間数値群がな 、と判断された場合 (ステップ S4005: No)、省略マップを 初期化する(ステップ S4008)。すなわち、帳票ファイル f0〜fnに対応するビット列を すべて OFFにすることで、全ビット「0」の省略マップを得る。そして、ステップ S4009 に移行する。 [0288] このあと、下限特定 Z比較処理 (ステップ S4009)および上限特定 Z比較処理 (ス テツプ S4010)を実行する。下限特定 Z比較処理 (ステップ S4009)および上限特定 Z比較処理 (ステップ S4010)の詳細な処理手順にっ ヽては後述する。
[0289] そして、決定部 2711により、数値範囲内の数値が存在する圧縮化帳票ファイル Fi を決定する(ステップ S4011)。このあと、ファイル構成データ特定部 2109により、数 値範囲内の数値が存在する圧縮ィ匕帳票ファイル Fiのページリストを特定し (ステップ S4012)、図 36に示したステップ S3621に移行する。これにより、数値検索実行処 理の一連の手順を終了する。
[0290] (下限特定 Z比較処理手順)
つぎに、図 40に示した下限特定 Z比較処理の詳細な処理手順にっ 、て説明する
。図 41は、図 40に示した下限特定 Z比較処理手順を示すフローチャートである。図
41においては、図 28— 1〜図 28— 4に示した大小比較例を参照しながら説明する。
[0291] まず、図 28— 2で示したように、下限数値群マップ(4桁先頭数字 3マップ M43)と 省略マップ M02との論理積演算をおこなうことにより、下限マップ M03を得る (ステツ プ S4101)。つぎに、ファイル番号 iを i=0とし、下限比較結果マップ M04を初期化( 全ビット OFF)する(ステップ S4102)。
[0292] そして、下限マップ M03中、 i番目のビットが ONであるか否かを判断する(ステップ
S4103)。ビットが OFFである場合 (ステップ S4103 : No)、ステップ S4110に移行す る。
[0293] 一方、ビットが ONである場合 (ステップ S4103 : Yes)、圧縮化帳票ファイル Fの中 から圧縮化帳票ファイル Fiを抽出する(ステップ S4104)。このあと、圧縮化帳票ファ ィル Fiの中に、ファイル内数値の圧縮情報(図 28— 2では圧縮情報 2801)がある力 否かを判断する(ステップ S4105)。
[0294] 圧縮情報がある場合 (ステップ S4105: Yes)、下限数値照合処理を実行する (ステ ップ S4106)。この下限数値照合処理については図 42で後述する。そして、下限数 値照合処理による照合結果により、下限数値の境界条件を充足しているか否かを判 断する(ステップ S4107)。
[0295] 充足していない場合 (ステップ S4107 :No)、ステップ S4105に戻る。一方、境界条 件を充足している場合 (ステップ S4107 : Yes)、下限比較結果マップ M04中、 i番目 のビットが OFFのままか否かを判断する(ステップ S4108)。すでに ONになっている 場合 (ステップ S4108 : No)、ステップ S4105に移行する。
[0296] 一方、ビットが OFFである場合 (ステップ S4108: Yes)、その i番目のビットを OFF 力も ONにして(ステップ S4109)、ステップ S4105に戻る。また、ステップ S4105に おいて、未照合のファイル内数値の圧縮情報がない場合 (ステップ S4105 : No)、ス テツプ S4110〖こ移行する。ステップ S4110では、ファイル番号 iを 1つインクリメントす る。そして、 i>nである力否かを判断する(ステップ S4111)。
[0297] i>nでない場合 (ステップ S4111 :No)、ステップ S4103に戻る。一方、 i>nである 場合 (ステップ S4111: Yes)、図 40で示したステップ S4011に移行する。これにより 、下限特定 Z比較処理の一連の手順を終了する。
[0298] (下限数値照合処理手順)
つぎに、図 41に示した下限数値照合処理の詳細な処理手順につ 、て説明する。 図 42は、下限数値照合処理手順を示すフローチャートである。図 42において、下限 数値の圧縮情報内の全角 ·半角ビットおよびカンマ有無ビットと、ファイル内数値の圧 縮情報内の全角 ·半角ビットおよびカンマ有無ビットとを OFFにする(ステップ S4201
) o
[0299] そして、圧縮情報どうしを比較してフィーダが一致する力否かを判断する (ステップ S4201)。不一致である場合 (ステップ S4202 :No)、ステップ S4107に移行する。 一方、フィーダが一致した場合 (ステップ S4202 : Yes)、桁数が一致する力否かを判 断する(ステップ S4203)。
[0300] 桁数が不一致である場合 (ステップ S4203 : No)、ステップ S4107に移行する。一 方、桁数も一致する場合 (ステップ S4203 :Yes)、桁数カウンタ Nを N = Nmaxに設 定する(ステップ S4204)。 Nmaxは下限数値およびファイル内数値の桁数である。
[0301] そして、ファイル内数値の N桁目の数字が下限数値の N桁目の数字以上であるか 否かを判断する (ステップ S4205)。ここで、判断基準として下限数値の N桁目の数 字以上としたのは、数値範囲における下限数値の境界条件が「≤」であるからであり 、当該境界条件が「<」である場合、ファイル内数値の N桁目の数字が下限数値の N 桁目の数字よりも大き 、か否かを判断することとなる。
[0302] そして、下限数値の N桁目の数字以上でな!、場合 (ステップ S4205: No)、ステツ プ S4107〖こ移行する。一方、下限数値の N桁目の数字以上である場合 (ステップ S4 205 : Yes)、桁数カウンタ Nを 1つデクリメントし (ステップ S4206)、桁数カウンタ Nが N< 0であるか否かを判断する(ステップ S4207)。 N< 0でな!/、場合 (ステップ S420 7 :No)、下限数値の圧縮情報とファイル内数値の圧縮情報のうちいずれか一方にだ け、 N— 1桁目の数字の圧縮符号と N桁目の数字の圧縮符号との間に小数点の圧縮 符号がある力否かを判断する(ステップ S4208)。
[0303] V、ずれか一方にだけ N— 1桁目の数字の圧縮符号と N桁目の数字の圧縮符号との 間に小数点の圧縮符号がない場合 (ステップ S4208 : No)、すなわち、ともに小数点 の圧縮符号があるか、いずれにも小数点の圧縮符号がない場合、ステップ S4205に 戻る。
[0304] 一方、 、ずれか一方にだけ N— 1桁目の数字の圧縮符号と N桁目の数字の圧縮符 号との間に小数点の圧縮符号がある場合 (ステップ S4208 :Yes)、ステップ S4107 に移行する。
[0305] また、ステップ S4207において、 Nく 0である場合 (ステップ S4207 : Yes)、ステツ プ S4107〖こ移行する。これにより、下限数値照合処理の一連の手順を終了する。
[0306] そして、図 41に示したステップ S4107では、ステップ S4207で Nく 0である場合 (ス テツプ S4207 : Yes)、下限数値の境界条件を充足していると判断し、一方、ステップ S4202、ステップ S4203、ステップ S4205またはステップ S4208で Noと半 IJ断された 場合、下限数値の境界条件を充足して 、な 、と判断する。
[0307] (上限特定 Z比較処理手順)
つぎに、図 40に示した上限特定 Z比較処理の詳細な処理手順にっ 、て説明する 。図 43は、図 40に示した上限特定 Z比較処理手順を示すフローチャートである。図 43においては、図 28— 1〜図 28— 4に示した大小比較例を参照しながら説明する。
[0308] まず、図 28— 2で示したように、上限数値群マップ(4桁先頭数字 6マップ M46)と 省略マップ M02との論理積演算をおこなうことにより、上限マップ M05を得る(ステツ プ S4301)。つぎに、ファイル番号 iを i=0とし、上限比較結果マップ M06を初期化( 全ビット OFF)する(ステップ S4302)。
[0309] そして、上限マップ M05中、 i番目のビットが ONであるか否かを判断する(ステップ S4303)。ビットが OFFである場合 (ステップ S4303 :No)、ステップ S4310に移行す る。
[0310] 一方、ビットが ONである場合 (ステップ S4303 : Yes)、圧縮化帳票ファイル Fの中 から圧縮化帳票ファイル Fiを抽出する(ステップ S4304)。このあと、圧縮化帳票ファ ィル Fiの中に、ファイル内数値の圧縮情報(図 28— 3では圧縮情報 2803)がある力 否かを判断する(ステップ S4305)。
[0311] 圧縮情報がある場合 (ステップ S4305 :Yes)、上限数値照合処理を実行する (ステ ップ S4306)。この上限数値照合処理については図 44で後述する。そして、上限数 値照合処理による照合結果により、上限数値の境界条件を充足しているか否かを判 断する(ステップ S4307)。
[0312] 充足していない場合 (ステップ S4307 :No)、ステップ S4305に戻る。一方、境界条 件を充足している場合 (ステップ S4307 : Yes)、上限比較結果マップ M06中、 i番目 のビットが OFFのままか否かを判断する(ステップ S4308)。すでに ONになっている 場合 (ステップ S4308 :No)、ステップ S4305に移行する。
[0313] 一方、ビットが OFFである場合 (ステップ S4308: Yes)、その i番目のビットを OFF 力ら ONにして(ステップ S4309)、ステップ S4305に戻る。また、ステップ S4305に おいて、未照合のファイル内数値の圧縮情報がない場合 (ステップ S4305 : No)、ス テツプ S4310〖こ移行する。ステップ S4310では、ファイル番号 iを 1つインクリメントす る(ステップ S4310)。そして、 i>nであるか否かを判断する(ステップ S4311)。
[0314] i>nでない場合 (ステップ S4311 :No)、ステップ S4303に戻る。一方、 i>nである 場合 (ステップ S4311 :Yes)、図 40で示したステップ S4011に移行する。これにより 、上限特定 Z比較処理の一連の手順を終了する。
[0315] (上限数値照合処理手順)
つぎに、図 43に示した上限数値照合処理の詳細な処理手順について説明する。 図 44は、上限数値照合処理手順を示すフローチャートである。図 44において、上限 数値の圧縮情報内の全角 ·半角ビットおよびカンマ有無ビットと、ファイル内数値の圧 縮情報内の全角 ·半角ビットおよびカンマ有無ビットとを OFFにする(ステップ S4401
) o
[0316] そして、圧縮情報どうしを比較してフィーダが一致する力否かを判断する (ステップ S4402)。不一致である場合 (ステップ S4402 :No)、ステップ S4307に移行する。 一方、フィーダが一致した場合 (ステップ S4402 : Yes)、桁数が一致する力否かを判 断する(ステップ S4403)。
[0317] 桁数が不一致である場合 (ステップ S4403 : No)、ステップ S4307に移行する。一 方、桁数も一致する場合 (ステップ S4403 :Yes)、桁数カウンタ Nを N = Nmaxに設 定する(ステップ S4404)。 Nmaxは上限数値およびファイル内数値の桁数である。
[0318] そして、ファイル内数値の N桁目の数字が上限数値の N桁目の数字以下であるか 否かを判断する (ステップ S4405)。ここで、判断基準として「上限数値の N桁目の数 字以下」としたのは、数値範囲における上限数値の境界条件が「≥」であるからであり 、当該境界条件力^ >」である場合、ファイル内数値の N桁目の数字が上限数値の N 桁目の数字よりも小さ 、か否かを判断することとなる。
[0319] そして、上限数値の N桁目の数字以下でない場合 (ステップ S4405 : No)、ステツ プ S4307〖こ移行する。一方、上限数値の N桁目の数字以下である場合 (ステップ S4 405 : Yes)、桁数カウンタ Nを 1つデクリメントし (ステップ S4406)、桁数カウンタ Nが N< 0であるか否かを判断する(ステップ S4407)。 N< 0でな!/、場合 (ステップ S440 7 :No)、上限数値の圧縮情報とファイル内数値の圧縮情報のうちいずれか一方にだ け、 N— 1桁目の数字の圧縮符号と N桁目の数字の圧縮符号との間に小数点の圧縮 符号がある力否かを判断する(ステップ S4408)。
[0320] いずれか一方にだけ N— 1桁目の数字の圧縮符号と N桁目の数字の圧縮符号との 間に小数点の圧縮符号がない場合 (ステップ S4408 : No)、すなわち、ともに小数点 の圧縮符号があるか、いずれにも小数点の圧縮符号がない場合、ステップ S4405に 戻る。
[0321] 一方、 、ずれか一方にだけ N— 1桁目の数字の圧縮符号と N桁目の数字の圧縮符 号との間に小数点の圧縮符号がある場合 (ステップ S4408 : Yes)、ステップ S4307 に移行する。 [0322] また、ステップ S4407において、 Nく 0である場合 (ステップ S4407 : Yes)、ステツ プ S4307〖こ移行する。これにより、上限数値照合処理の一連の手順を終了する。
[0323] そして、図 43に示したステップ S4307では、ステップ S4407で Nく 0である場合 (ス テツプ S4407 : Yes)、上限数値の境界条件を充足していると判断し、一方、ステップ S4402、ステップ S4403、ステップ S4405またはステップ S4408で Noと判断された 場合、上限数値の境界条件を充足して 、な 、と判断する。
[0324] 以上のことから、この発明の実施の形態によれば、中間数値群を検出して省略マツ プ M02に反映させているため、中間数値群の出現マップにより特定される圧縮化帳 票ファイルに対して数値範囲内の数値の一致照合をするまでもなぐ数値範囲内の 数値の有無を検出することができる。
[0325] また、下限数値群や上限数値群についてのみ数値の一致照合をおこなうが、フアイ ル内数値はフィーダに関連付けられているため、圧縮ィ匕帳票ファイル Fiの中力 数 値情報のみを高速に検索することができる。また、数値の圧縮情報どうしで一致照合 して 、るため、フィーダや桁数の圧縮符号どうしの一致照合のみで大小比較をおこな うことができ、高精度な検索を高速でおこなうことができる。
[0326] また、数値 ·文字出現頻度管理データ 500において、数字等の出現頻度を補正す ることにより、数値の一致照合や伸長の高速ィ匕を図ることができる。特に、検索対象フ アイルに数値データと文字データが混在する場合に、数値の一致照合や伸長の高 速ィ匕を図ることができる。
[0327] このように、この発明の実施の形態によれば、数値範囲内の数値が存在するフアイ ルを圧縮したまま特定することにより、数値範囲検索の高速ィ匕および高精度化を図る ことができると!/、う効果を奏する。
産業上の利用可能性
[0328] 以上のように、本発明に力かる情報検索プログラム、該プログラムを記録した記録媒 体、情報検索方法、および情報検索装置は、数値範囲の検索に有用であり、特に、 帳票ファイルのような数値が多数含まれて 、るコンテンツに適して 、る。

Claims

請求の範囲
[1] 任意の数値範囲の境界を規定する数値を取得させる取得工程と、
前記取得工程によって取得された境界を規定する数値の桁数および先頭数字を 検出させる検出工程と、
桁数および先頭数字を満たす数値群内の数値の存否を検索対象ファイルごとにあ らわしたビット列の集合の中から、前記検出工程によって検出された桁数および先頭 数字を満たす数値群内の数値の存否を前記検索対象ファイルごとにあらわしたビット 列を抽出させるビット列抽出工程と、
前記ビット列抽出工程によって抽出されたビット列の中の前記検出工程によって検 出された桁数および先頭数字を満たす数値群内の数値の存在を示すビットに対応 する検索対象ファイルを、前記複数の検索対象ファイルの中から特定させる特定ェ 程と、
前記特定工程によって特定された検索対象ファイルに含まれているファイル内数値 力 前記境界を規定する数値との境界条件を充足している力否かを判断させる境界 条件判断工程と、
前記境界条件判断工程によって判断された判断結果に基づ!/ヽて、前記特定工程 によって特定された検索対象ファイルを、前記数値範囲内の数値を含むファイルに 決定させる決定工程と、
をコンピュータに実行させることを特徴とする情報検索プログラム。
[2] 前記境界を規定する一方の数値の桁数および先頭数字を満たす一方の数値群と 、前記境界を規定する他方の数値の桁数および先頭数字を満たす他方の数値群と の間に、中間の数値群が存在するカゝ否かを判断させる中間数値群判断工程を、前 記コンピュータに実行させ、
前記特定工程は、
さらに、前記一方の数値群内の数値が存在する検索対象ファイルのうち前記中間 数値群内の数値が存在しない検索対象ファイル (以下、「一方の検索対象ファイル」 という)を特定させるとともに、前記他方の数値群内の数値が存在する検索対象フアイ ルのうち前記中間数値群内の数値が存在しない検索対象ファイル (以下、「他方の検 索対象ファイル」 t 、う)を特定させ、
前記境界条件判断工程は、
前記特定工程によって特定された一方の検索対象ファイルに含まれているファイル 内数値が前記境界を規定する一方の数値との境界条件を充足して!/、るか否か、およ び前記特定工程によって特定された他方の検索対象ファイルに含まれているフアイ ル内数値が前記境界を規定する他方の数値との境界条件を充足しているか否かを 判断させ、
前記決定工程は、
前記境界条件判断工程によって判断された判断結果に基づ!ヽて、前記一方の検 索対象ファイル、前記他方の検索対象ファイル、または前記中間数値群内の数値が 存在する検索対象ファイルを、前記数値範囲内の数値を含むファイルに決定させる ことを特徴とする請求項 1に記載の情報検索プログラム。
[3] 任意の数値範囲の境界を規定する数値を取得させる取得工程と、
前記取得工程によって取得された境界を規定する数値を所定の圧縮形式で圧縮さ せる数値圧縮工程と、
前記数値圧縮工程によって得られた前記境界を規定する数値に関する圧縮情報と 、検索対象ファイルを前記所定の形式で圧縮した圧縮化検索対象ファイルに含まれ ているファイル内数値に関する圧縮情報とを照合することにより、前記ファイル内数値 が前記境界を規定する数値との境界条件を充足している力否かを判断させる境界条 件判断工程と、
前記境界条件判断工程によって判断された判断結果に基づ!ヽて、前記圧縮化検 索対象ファイルを、前記数値範囲内の数値を含むファイルに決定させる決定工程と、 をコンピュータに実行させることを特徴とする情報検索プログラム。
[4] 前記数値圧縮工程は、
前記境界を規定する数値を、前記境界を規定する数値の桁数を示す数字に関す る圧縮符号および前記境界を規定する数値の桁数ごとの数字に関する圧縮符号を 含む圧縮情報に圧縮させ、
前記境界条件判断工程は、 前記数値圧縮工程によって圧縮された圧縮情報と、前記ファイル内数値の桁数を 示す数字に関する圧縮符号および前記ファイル内数値の桁ごとの数字に関する圧 縮符号とを含む前記ファイル内数値に関する圧縮情報とを照合することにより、前記 ファイル内数値が前記境界を規定する数値との境界条件を充足している力否かを判 断させることを特徴とする請求項 3に記載の情報検索プログラム。
前記境界を規定する一方の数値の桁数および先頭数字を満たす一方の数値群と 、前記境界を規定する他方の数値の桁数および先頭数字を満たす他方の数値群と の間に、中間の数値群が存在するか否かを判断させる中間数値群判断工程と、 前記一方の数値群内の数値が存在する圧縮化検索対象ファイルのうち前記中間 数値群内の数値が存在しない圧縮化検索対象ファイル (以下、「一方の圧縮化検索 対象ファイル」 t ヽぅ)を特定させるとともに、
前記他方の数値群内の数値が存在する圧縮化検索対象ファイルのうち前記中間 数値群内の数値が存在しない圧縮化検索対象ファイル (以下、「他方の圧縮化検索 対象ファイル」という)を特定させる特定工程とを、前記コンピュータに実行させ、 前記数値圧縮工程は、
前記境界を規定する一方の数値を、前記境界を規定する数値の桁数を示す数字 に関する圧縮符号および前記境界を規定する数値の桁数ごとの数字に関する圧縮 符号を含む一方の圧縮情報に圧縮させるとともに、
前記境界を規定する他方の数値を、前記境界を規定する数値の桁数を示す数字 に関する圧縮符号および前記境界を規定する数値の桁数ごとの数字に関する圧縮 符号を含む他方の圧縮情報に圧縮させ、
前記境界条件判断工程は、
前記数値圧縮工程によって得られた前記一方の圧縮情報と前記一方の圧縮ィ匕検 索対象ファイルに含まれているファイル内数値に関する圧縮情報とを照合することに より、当該ファイル内数値が前記境界を規定する数値との境界条件を充足しているか 否かを判断させるとともに、
前記数値圧縮工程によって得られた前記他方の圧縮情報と前記他方の圧縮化検 索対象ファイルに含まれているファイル内数値に関する圧縮情報とを照合することに より、当該ファイル内数値が前記境界を規定する数値との境界条件を充足しているか 否かを判断させ、
前記決定工程は、
前記境界条件判断工程によって判断された判断結果に基づ!ヽて、前記一方の圧 縮化検索対象ファイル、前記他方の圧縮化検索対象ファイル、または前記中間数値 群内の数値が存在する圧縮化検索対象ファイルを、前記数値範囲内の数値を含む ファイルに決定させることを特徴とする請求項 3または 4に記載の情報検索プログラム
[6] 前記検索対象ファイル内に存在する数字の出現頻度を、前記検索対象ファイル内 に存在する文字の出現頻度よりも高い出現頻度に補正させる補正工程と、 前記補正工程によって補正された出現頻度に基づいて、前記検索対象ファイルを 圧縮させるファイル圧縮工程と、を前記コンピュータに実行させ、
前記境界条件判断工程は、
前記数値圧縮工程によって得られた前記境界を規定する数値に関する圧縮情報と 、前記ファイル圧縮工程によって圧縮された前記圧縮ィヒ検索対象ファイルに含まれ ているファイル内数値に関する圧縮情報とを照合することにより、前記ファイル内数値 が前記境界を規定する数値との境界条件を充足している力否かを判断させることを 特徴とする請求項 3に記載の情報検索プログラム。
[7] 前記補正工程は、
さらに、前記検索対象ファイル内に存在するカンマの出現頻度を、前記検索対象フ アイル内に存在する文字の出現頻度よりも高い出現頻度に補正させることを特徴とす る請求項 6に記載の情報検索プログラム。
[8] 前記補正工程は、
さらに、前記検索対象ファイル内に存在する小数点の出現頻度を、前記検索対象 ファイル内に存在する文字の出現頻度よりも高い出現頻度に補正させることを特徴と する請求項 6または 7に記載の情報検索プログラム。
[9] 数字と文字とが混在する検索対象ファイルの中から数値の存在を示すフィーダを検 出させるフィーダ検出工程と、 前記フィーダ検出工程によって検出されたフィーダに関連付けられている数値の桁 数を検出させる桁数検出工程と、
前記検索対象ファイル内に含まれている数字の出現頻度に基づいて、前記数値を 前記フィーダに関連付けて、前記桁数検出工程によって検出された桁数を示す数字 に関する圧縮符号と前記数値の桁数ごとの数字に関する圧縮符号とを含む圧縮情 報に圧縮させる圧縮工程と、
をコンピュータに実行させることを特徴とする情報検索プログラム。
[10] 前記フィーダは、前記数値の種類を特定する情報であることを特徴とする請求項 9 に記載の情報検索プログラム。
[11] 前記数値が全角または半角であることを検出させる全角 Z半角検出工程を前記コ ンピュータに実行させ、
前記圧縮工程は、
さらに、前記数値を、前記全角 Z半角検出工程によって検出された検出結果に関 する圧縮符号を含む圧縮情報に圧縮させることを特徴とする請求項 9また 10に記載 の情報検索プログラム。
[12] 前記数値の中からカンマを検出させるカンマ検出工程を前記コンピュータに実行さ せ、
前記圧縮工程は、
さらに、前記数値を、前記カンマ検出工程によって検出された検出結果に関する圧 縮符号を含む圧縮情報に圧縮させることを特徴とする請求項 9または 10に記載の情 報検索プログラム。
[13] 前記検索対象ファイル内に存在する数字の出現頻度を、前記検索対象ファイル内 に存在する文字の出現頻度よりも高い出現頻度に補正させる補正工程を前記コンビ ユータに実行させ、
前記圧縮工程は、
前記補正工程によって補正された出現頻度に基づいて、前記数値を圧縮させるこ とを特徴とする請求項 9に記載の情報検索プログラム。
[14] 前記補正工程は、 さらに、前記検索対象ファイル内に存在するカンマの出現頻度を、前記検索対象フ アイル内に存在する文字の出現頻度よりも高い出現頻度に補正させることを特徴とす る請求項 9に記載の情報検索プログラム。
[15] 前記補正工程は、
さらに、前記検索対象ファイル内に存在する小数点の出現頻度を、前記検索対象 ファイル内に存在する文字の出現頻度よりも高い出現頻度に補正させることを特徴と する請求項 9に記載の情報検索プログラム。
[16] 請求項 1、 3または 9のいずれか一つに記載の情報検索プログラムを記録した前記 コンピュータに読み取り可能な記録媒体。
[17] 任意の数値範囲の境界を規定する数値を取得する取得工程と、
前記取得工程によって取得された境界を規定する数値の桁数および先頭数字を 検出する検出工程と、
桁数および先頭数字を満たす数値群内の数値の存否を検索対象ファイルごとにあ らわしたビット列の集合の中から、前記検出工程によって検出された桁数および先頭 数字を満たす数値群内の数値の存否を前記検索対象ファイルごとにあらわしたビット 列を抽出するビット列抽出工程と、
前記ビット列抽出工程によって抽出されたビット列の中の前記検出工程によって検 出された桁数および先頭数字を満たす数値群内の数値の存在を示すビットに対応 する検索対象ファイルを、前記複数の検索対象ファイルの中から特定する特定工程 と、
前記特定工程によって特定された検索対象ファイルに含まれているファイル内数値 力 前記境界を規定する数値との境界条件を充足して 、る力否かを判断する境界条 件判断工程と、
前記境界条件判断工程によって判断された判断結果に基づ!ヽて、前記特定工程 によって特定された検索対象ファイルを、前記数値範囲内の数値を含むファイルに 決定する決定工程と、
を含んだことを特徴とする情報検索方法。
[18] 任意の数値範囲の境界を規定する数値を取得する取得工程と、 前記取得工程によって取得された境界を規定する数値を所定の圧縮形式で圧縮 する数値圧縮工程と、
前記数値圧縮工程によって得られた前記境界を規定する数値に関する圧縮情報と 、検索対象ファイルを前記所定の形式で圧縮した圧縮化検索対象ファイルに含まれ ているファイル内数値に関する圧縮情報とを照合することにより、前記ファイル内数値 が前記境界を規定する数値との境界条件を充足している力否かを判断する境界条 件判断工程と、
前記境界条件判断工程によって判断された判断結果に基づ!ヽて、前記圧縮化検 索対象ファイルを、前記数値範囲内の数値を含むファイルに決定する決定工程と、 を含んだことを特徴とする情報検索方法。
[19] 数字と文字とが混在する検索対象ファイルの中から数値の存在を示すフィーダを検 出するフィーダ検出工程と、
前記フィーダ検出工程によって検出されたフィーダに関連付けられている数値の桁 数を検出する桁数検出工程と、
前記検索対象ファイル内に含まれている数字の出現頻度に基づいて、前記数値を 前記フィーダに関連付けて、前記桁数検出工程によって検出された桁数を示す数字 に関する圧縮符号と前記数値の桁数ごとの数字に関する圧縮符号とを含む圧縮情 報に圧縮する圧縮工程と、
を含んだことを特徴とする情報検索方法。
[20] 任意の数値範囲の境界を規定する数値を取得する取得手段と、
前記取得手段によって取得された境界を規定する数値の桁数および先頭数字を 検出する検出手段と、
桁数および先頭数字を満たす数値群内の数値の存否を検索対象ファイルごとにあ らわしたビット列の集合の中から、前記検出手段によって検出された桁数および先頭 数字を満たす数値群内の数値の存否を前記検索対象ファイルごとにあらわしたビット 列を抽出するビット列抽出手段と、
前記ビット列抽出手段によって抽出されたビット列の中の前記検出手段によって検 出された桁数および先頭数字を満たす数値群内の数値の存在を示すビットに対応 する検索対象ファイルを、前記複数の検索対象ファイルの中から特定する特定手段 と、
前記特定手段によって特定された検索対象ファイルに含まれているファイル内数値 力 前記境界を規定する数値との境界条件を充足して 、る力否かを判断する境界条 件判断手段と、
前記境界条件判断手段によって判断された判断結果に基づ!、て、前記特定手段 によって特定された検索対象ファイルを、前記数値範囲内の数値を含むファイルに 決定する決定手段と、
を備えることを特徴とする情報検索装置。
[21] 任意の数値範囲の境界を規定する数値を取得する取得手段と、
前記取得手段によって取得された境界を規定する数値を所定の圧縮形式で圧縮 する数値圧縮手段と、
前記数値圧縮手段によって得られた前記境界を規定する数値に関する圧縮情報と 、検索対象ファイルを前記所定の形式で圧縮した圧縮化検索対象ファイルに含まれ ているファイル内数値に関する圧縮情報とを照合することにより、前記ファイル内数値 が前記境界を規定する数値との境界条件を充足している力否かを判断する境界条 件判断手段と、
前記境界条件判断手段によって判断された判断結果に基づ!、て、前記圧縮化検 索対象ファイルを、前記数値範囲内の数値を含むファイルに決定する決定手段と、 を備えることを特徴とする情報検索装置。
[22] 数字と文字とが混在する検索対象ファイルの中から数値の存在を示すフィーダを検 出するフィーダ検出手段と、
前記フィーダ検出手段によって検出されたフィーダに関連付けられている数値の桁 数を検出する桁数検出手段と、
前記検索対象ファイル内に含まれている数字の出現頻度に基づいて、前記数値を 前記フィーダに関連付けて、前記桁数検出手段によって検出された桁数を示す数字 に関する圧縮符号と前記数値の桁数ごとの数字に関する圧縮符号とを含む圧縮情 報に圧縮する圧縮手段と、 を備えることを特徴とする情報検索装置。
PCT/JP2006/320827 2006-10-19 2006-10-19 Programme de recherche d'informations, supports d'enregistrement comprenant un tel programme enregistré, procédé de recherche d'informations, dispositif de recherche d'informations WO2008047432A1 (fr)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2008539647A JP4707198B2 (ja) 2006-10-19 2006-10-19 情報検索プログラム、該プログラムを記録した記録媒体、情報検索方法、および情報検索装置
PCT/JP2006/320827 WO2008047432A1 (fr) 2006-10-19 2006-10-19 Programme de recherche d'informations, supports d'enregistrement comprenant un tel programme enregistré, procédé de recherche d'informations, dispositif de recherche d'informations
US12/418,886 US8131721B2 (en) 2006-10-19 2009-04-06 Information retrieval method, information retrieval apparatus, and computer product
US13/308,133 US9081874B2 (en) 2006-10-19 2011-11-30 Information retrieval method, information retrieval apparatus, and computer product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2006/320827 WO2008047432A1 (fr) 2006-10-19 2006-10-19 Programme de recherche d'informations, supports d'enregistrement comprenant un tel programme enregistré, procédé de recherche d'informations, dispositif de recherche d'informations

Related Child Applications (3)

Application Number Title Priority Date Filing Date
US11/418,886 A-371-Of-International US20070260450A1 (en) 2006-05-05 2006-05-05 Indexing parsed natural language texts for advanced search
US12/418,886 Continuation US8131721B2 (en) 2006-10-19 2009-04-06 Information retrieval method, information retrieval apparatus, and computer product
US13/308,133 Division US9081874B2 (en) 2006-10-19 2011-11-30 Information retrieval method, information retrieval apparatus, and computer product

Publications (1)

Publication Number Publication Date
WO2008047432A1 true WO2008047432A1 (fr) 2008-04-24

Family

ID=39313691

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2006/320827 WO2008047432A1 (fr) 2006-10-19 2006-10-19 Programme de recherche d'informations, supports d'enregistrement comprenant un tel programme enregistré, procédé de recherche d'informations, dispositif de recherche d'informations

Country Status (3)

Country Link
US (2) US8131721B2 (ja)
JP (1) JP4707198B2 (ja)
WO (1) WO2008047432A1 (ja)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011138230A (ja) * 2009-12-25 2011-07-14 Fujitsu Ltd 情報処理プログラム、情報検索プログラム、情報処理装置、および情報検索装置
JP2015062146A (ja) * 2015-01-05 2015-04-02 富士通株式会社 情報生成プログラム、情報生成装置、および情報生成方法
JP2016046602A (ja) * 2014-08-20 2016-04-04 富士通株式会社 圧縮プログラム、圧縮装置、圧縮方法、伸長プログラム、伸長装置および伸長方法
JP2016527650A (ja) * 2013-08-06 2016-09-08 インテル・コーポレーション ベクトルポピュレーションカウント機能性を提供する方法、装置、命令、およびロジック
JP2016529617A (ja) * 2013-08-06 2016-09-23 インテル・コーポレーション ゲノム配列決定および配列比較のためのポピュレーションカウント機能性を提供する方法、装置、命令、およびロジック
US9501557B2 (en) 2010-05-28 2016-11-22 Fujitsu Limited Information generating computer product, apparatus, and method; and information search computer product, apparatus, and method
WO2018198192A1 (ja) * 2017-04-25 2018-11-01 三菱電機株式会社 検索装置、検索システム、検索方法及び検索プログラム
EP3404839A1 (en) 2017-05-16 2018-11-21 Fujitsu Limited Encoding program, encoding device, and encoding method
EP3404560A1 (en) 2017-05-16 2018-11-21 Fujitsu Limited Search program, search device, and search method
US10320579B2 (en) 2016-10-06 2019-06-11 Fujitsu Limited Computer-readable recording medium, index generating apparatus, index generating method, computer-readable recording medium, retrieving apparatus, and retrieving method

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008047432A1 (fr) * 2006-10-19 2008-04-24 Fujitsu Limited Programme de recherche d'informations, supports d'enregistrement comprenant un tel programme enregistré, procédé de recherche d'informations, dispositif de recherche d'informations
US9292565B2 (en) 2010-06-30 2016-03-22 International Business Machines Corporation Template-based recognition of food product information
GB2496423B (en) * 2011-11-11 2016-08-17 Ibm Data compression
JP6011618B2 (ja) * 2012-05-24 2016-10-19 富士通株式会社 検索プログラム、検索方法、検索装置、記憶プログラム、記憶方法及び記憶装置
WO2014045361A1 (ja) 2012-09-20 2014-03-27 株式会社東芝 データ処理装置、データ管理システム、データ処理方法およびプログラム
US9197365B2 (en) * 2012-09-25 2015-11-24 Nvidia Corporation Decoding a coded data block
JP6107513B2 (ja) * 2013-07-29 2017-04-05 富士通株式会社 情報処理システム、情報処理方法、および情報処理プログラム
US20150062660A1 (en) * 2013-08-30 2015-03-05 Toshiba Tec Kabushiki Kaisha File management apparatus and file management method
US10268449B1 (en) * 2015-06-25 2019-04-23 EMC IP Holding Company LLC Natural order in API calls
CN116860828A (zh) * 2023-06-16 2023-10-10 深圳市世强元件网络有限公司 一种区间数值检索方法、存储介质及计算机

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02159618A (ja) * 1988-12-13 1990-06-19 Matsushita Graphic Commun Syst Inc キーワード登録検索装置
JPH0319081A (ja) * 1989-06-16 1991-01-28 Hitachi Software Eng Co Ltd 情報検索システム
JPH03147036A (ja) * 1989-11-01 1991-06-24 Casio Comput Co Ltd 可変長データ処理装置
JPH0561918A (ja) * 1991-09-04 1993-03-12 Nec Home Electron Ltd 数値検索装置
JPH05314188A (ja) * 1992-05-11 1993-11-26 Nec Software Ltd 範囲をもつデータの検索処理方式
JPH06309369A (ja) * 1993-04-22 1994-11-04 Matsushita Electric Ind Co Ltd 情報検索装置

Family Cites Families (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3521034A (en) * 1965-09-13 1970-07-21 Calvin N Mooers Battery controlled machine
US3594560A (en) * 1969-01-03 1971-07-20 Bell Telephone Labor Inc Digital expandor circuit
US3760170A (en) * 1971-03-19 1973-09-18 Cam Technology Inc Method and apparatus for automatic control
JPS5316652B2 (ja) * 1971-09-17 1978-06-02
CH572650A5 (ja) * 1972-12-21 1976-02-13 Gretag Ag
JPS5422244B2 (ja) * 1973-04-09 1979-08-06
US3953846A (en) * 1973-11-05 1976-04-27 Ekeland Thomas C Encoding device
US3916388A (en) * 1974-05-30 1975-10-28 Ibm Shifting apparatus for automatic data alignment
US4068298A (en) * 1975-12-03 1978-01-10 Systems Development Corporation Information storage and retrieval system
US4180854A (en) * 1977-09-29 1979-12-25 Hewlett-Packard Company Programmable calculator having string variable editing capability
US6062481A (en) * 1986-04-18 2000-05-16 Cias, Inc. Optimal error-detecting, error-correcting and other coding and processing, particularly for bar codes, and applications therefor such as counterfeit detection
US5548110A (en) * 1986-04-18 1996-08-20 Cias, Inc. Optical error-detecting, error-correcting and other coding and processing, particularly for bar codes, and applications therefor such as counterfeit detection
US4862167A (en) * 1987-02-24 1989-08-29 Hayes Microcomputer Products, Inc. Adaptive data compression method and apparatus
US5138669A (en) * 1990-06-29 1992-08-11 Hitachi, Ltd. Range-conditional character string retrieving method and system
US5475616A (en) * 1992-02-19 1995-12-12 Matsushita Graphic Communication Systems, Inc. Data processing apparatus for decoding, converting in size and coding pieces of line data and transmitting the line data to a communication partner
US5717725A (en) * 1992-03-12 1998-02-10 Ntp Incorporated System for wireless transmission and receiving of information through a computer bus interface and method of operation
US5745532A (en) * 1992-03-12 1998-04-28 Ntp Incorporated System for wireless transmission and receiving of information and method of operation thereof
US6272190B1 (en) * 1992-03-12 2001-08-07 Ntp Incorporated System for wireless transmission and receiving of information and method of operation thereof
RU2262752C2 (ru) * 1994-02-28 2005-10-20 Сони Корпорейшн Способ и устройство записи данных, среда записи данных, способ и устройство воспроизведения данных
JP3278297B2 (ja) * 1994-07-20 2002-04-30 富士通株式会社 データ圧縮方法及びデータ復元方法並びにデータ圧縮装置及びデータ復元装置
US5544268A (en) * 1994-09-09 1996-08-06 Deacon Research Display panel with electrically-controlled waveguide-routing
JP3305190B2 (ja) * 1996-03-11 2002-07-22 富士通株式会社 データ圧縮装置及びデータ復元装置
US6057790A (en) * 1997-02-28 2000-05-02 Fujitsu Limited Apparatus and method for data compression/expansion using block-based coding with top flag
US6489902B2 (en) * 1997-12-02 2002-12-03 Hughes Electronics Corporation Data compression for use with a communications channel
US20040080541A1 (en) * 1998-03-20 2004-04-29 Hisashi Saiga Data displaying device
GB9807020D0 (en) * 1998-04-02 1998-06-03 Bamford Excavators Ltd A method of marking a mechanical element, an encoding scheme, a reading means for said marking and an apparatus for determining the position of said element
US6232894B1 (en) * 1998-05-15 2001-05-15 Kokochi Sangyo Co., Ltd. Reproducible data conversion and/or compression method of digital signals and a data converter and a digital computer
US6196466B1 (en) * 1998-06-09 2001-03-06 Symbol Technologies, Inc. Data compression method using multiple base number systems
US6118904A (en) * 1998-08-27 2000-09-12 The United States Of America As Represented By The National Security Agency Method of encoding data to minimize the number of codewords
US8397177B2 (en) * 1999-07-22 2013-03-12 Tavusi Data Solutions Llc Graphic-information flow method and system for visually analyzing patterns and relationships
US6400293B1 (en) * 1999-12-20 2002-06-04 Ric B. Richardson Data compression system and method
JP3990853B2 (ja) * 2000-03-24 2007-10-17 株式会社トリニティーセキュリティーシステムズ デジタルコピー防止処理装置、その装置により処理されたデジタルデータを記録した再生可能な記録媒体、デジタルコピー防止処理方法、その方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体およびその方法により処理されたデジタルデータを記録した再生可能な記録媒体
US6392567B2 (en) * 2000-03-31 2002-05-21 Fijitsu Limited Apparatus for repeatedly compressing a data string and a method thereof
US6670893B1 (en) * 2000-11-22 2003-12-30 Nokia Corporation Double-sided keyboard having a spacer plate with apertures to hold contacts
US6741749B2 (en) * 2001-01-24 2004-05-25 Advanced Digital Systems, Inc. System, device, computer program product, and method for representing a plurality of electronic ink data points
US6392568B1 (en) * 2001-03-07 2002-05-21 Unisys Corporation Data compression and decompression method and apparatus with embedded filtering of dynamically variable infrequently encountered strings
US6931418B1 (en) * 2001-03-26 2005-08-16 Steven M. Barnes Method and system for partial-order analysis of multi-dimensional data
FI110373B (fi) * 2001-04-11 2002-12-31 Nokia Corp Menetelmä pakatun audiosignaalin purkamiseksi
US6557852B1 (en) * 2001-08-20 2003-05-06 Michael Dyer Cuddy Cubic sexenary (base 6) dice for generating radom numbers from a predetermined set
EP1292036B1 (en) * 2001-08-23 2012-08-01 Nippon Telegraph And Telephone Corporation Digital signal decoding methods and apparatuses
US20030115191A1 (en) * 2001-12-17 2003-06-19 Max Copperman Efficient and cost-effective content provider for customer relationship management (CRM) or other applications
US6670897B1 (en) * 2002-10-03 2003-12-30 Motorola, Inc. Compression/decompression techniques based on tokens and Huffman coding
US7209926B2 (en) * 2002-10-24 2007-04-24 Research In Motion Limited Methods and apparatus for lexicographically sorting cyclic data
JP4136594B2 (ja) * 2002-10-25 2008-08-20 株式会社ターボデータラボラトリー データ処理方法およびデータ処理プログラム
US7155465B2 (en) * 2003-04-18 2006-12-26 Lee Howard F Method and apparatus for automatically archiving a file system
FI117988B (fi) * 2003-07-04 2007-05-15 Medicel Oy Informaationhallintajärjestelmä biokemiallista informaatiota varten
US7684629B2 (en) * 2004-01-26 2010-03-23 Fujifilm Corporation Data compression apparatus, and data compression program storage medium
US7769904B2 (en) * 2004-06-09 2010-08-03 L-3 Communications Integrated Systems L.P. Extensible binary mark-up language for efficient XML-based data communications and related systems and methods
US8018995B2 (en) * 2005-03-09 2011-09-13 Vudu, Inc. System and method for trick play of highly compressed video data
WO2006123429A1 (ja) * 2005-05-20 2006-11-23 Fujitsu Limited 情報検索方法、装置、プログラム、該プログラムを記録した記録媒体
US8259760B2 (en) * 2006-03-31 2012-09-04 Stmicroelectronics, Inc. Apparatus and method for transmitting and recovering multi-lane encoded data streams using a reduced number of lanes
WO2008047432A1 (fr) * 2006-10-19 2008-04-24 Fujitsu Limited Programme de recherche d'informations, supports d'enregistrement comprenant un tel programme enregistré, procédé de recherche d'informations, dispositif de recherche d'informations
WO2008142800A1 (ja) * 2007-05-24 2008-11-27 Fujitsu Limited 情報検索プログラム、該プログラムを記録した記録媒体、情報検索装置、および情報検索方法
WO2008142799A1 (ja) * 2007-05-24 2008-11-27 Fujitsu Limited 情報検索プログラム、該プログラムを記録した記録媒体、情報検索方法、および情報検索装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02159618A (ja) * 1988-12-13 1990-06-19 Matsushita Graphic Commun Syst Inc キーワード登録検索装置
JPH0319081A (ja) * 1989-06-16 1991-01-28 Hitachi Software Eng Co Ltd 情報検索システム
JPH03147036A (ja) * 1989-11-01 1991-06-24 Casio Comput Co Ltd 可変長データ処理装置
JPH0561918A (ja) * 1991-09-04 1993-03-12 Nec Home Electron Ltd 数値検索装置
JPH05314188A (ja) * 1992-05-11 1993-11-26 Nec Software Ltd 範囲をもつデータの検索処理方式
JPH06309369A (ja) * 1993-04-22 1994-11-04 Matsushita Electric Ind Co Ltd 情報検索装置

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011138230A (ja) * 2009-12-25 2011-07-14 Fujitsu Ltd 情報処理プログラム、情報検索プログラム、情報処理装置、および情報検索装置
US9501557B2 (en) 2010-05-28 2016-11-22 Fujitsu Limited Information generating computer product, apparatus, and method; and information search computer product, apparatus, and method
US10223120B2 (en) 2013-08-06 2019-03-05 Intel Corporation Methods, apparatus, instructions and logic to provide population count functionality for genome sequencing and alignment
JP2016527650A (ja) * 2013-08-06 2016-09-08 インテル・コーポレーション ベクトルポピュレーションカウント機能性を提供する方法、装置、命令、およびロジック
JP2016529617A (ja) * 2013-08-06 2016-09-23 インテル・コーポレーション ゲノム配列決定および配列比較のためのポピュレーションカウント機能性を提供する方法、装置、命令、およびロジック
US10678546B2 (en) 2013-08-06 2020-06-09 Intel Corporation Methods, apparatus, instructions and logic to provide population count functionality for genome sequencing and alignment
JP2019050039A (ja) * 2013-08-06 2019-03-28 インテル・コーポレーション ゲノム配列決定および配列比較のためのポピュレーションカウント機能性を提供する方法、装置、命令、およびロジック
JP2016046602A (ja) * 2014-08-20 2016-04-04 富士通株式会社 圧縮プログラム、圧縮装置、圧縮方法、伸長プログラム、伸長装置および伸長方法
US9496891B2 (en) 2014-08-20 2016-11-15 Fujitsu Limited Compression device, compression method, decompression device, decompression method, and computer-readable recording medium
JP2015062146A (ja) * 2015-01-05 2015-04-02 富士通株式会社 情報生成プログラム、情報生成装置、および情報生成方法
US10320579B2 (en) 2016-10-06 2019-06-11 Fujitsu Limited Computer-readable recording medium, index generating apparatus, index generating method, computer-readable recording medium, retrieving apparatus, and retrieving method
JPWO2018198192A1 (ja) * 2017-04-25 2019-11-07 三菱電機株式会社 検索装置、検索システム、検索方法及び検索プログラム
WO2018198192A1 (ja) * 2017-04-25 2018-11-01 三菱電機株式会社 検索装置、検索システム、検索方法及び検索プログラム
EP3404560A1 (en) 2017-05-16 2018-11-21 Fujitsu Limited Search program, search device, and search method
EP3404839A1 (en) 2017-05-16 2018-11-21 Fujitsu Limited Encoding program, encoding device, and encoding method
US11373040B2 (en) 2017-05-16 2022-06-28 Fujitsu Limited Computer-readable recording medium, encoding device, index generating device, search device, encoding method, index generating method, and search method

Also Published As

Publication number Publication date
US9081874B2 (en) 2015-07-14
US8131721B2 (en) 2012-03-06
JP4707198B2 (ja) 2011-06-22
US20120072434A1 (en) 2012-03-22
US20090193020A1 (en) 2009-07-30
JPWO2008047432A1 (ja) 2010-02-18

Similar Documents

Publication Publication Date Title
JP4707198B2 (ja) 情報検索プログラム、該プログラムを記録した記録媒体、情報検索方法、および情報検索装置
JP5007743B2 (ja) 情報検索プログラム、該プログラムを記録した記録媒体、情報検索装置、および情報検索方法
JP4644708B2 (ja) 情報検索プログラム
EP0293161B1 (en) Character processing system with spelling check function
JP5741699B2 (ja) 抽出方法、抽出プログラム、抽出装置、および抽出システム
JP6728926B2 (ja) 符号化処理プログラム、符号化処理装置、符号化処理方法、復号化処理プログラム、復号化処理装置および復号化処理方法
WO1999021092A1 (fr) Procede de traitement de fichiers, dispositif de traitement de donnees et support de memorisation
Yang et al. Chinese Multi-Keyword Fuzzy Rank Search over Encrypted Cloud Data Based on Locality-Sensitive Hashing.
JP2019067096A (ja) 符号符号分類検索ソフトウェアを記録した記録媒体
JP6251437B1 (ja) 分類用符号生成ソフトウェアを記録した記録媒体
JPH056398A (ja) 文書登録装置及び文書検索装置
JPH06251076A (ja) データ・ベース検索装置および方法
RU2386167C1 (ru) Устройство обработки информации для информационного поиска
JPH04129429A (ja) データ圧縮装置の辞書検索方式
KR19990084950A (ko) 역화일을 이용한 데이터 부분검색 장치 및 그 방법
JP3722231B2 (ja) コンパクトにエンコードされて記憶されたストリングの組を有する製品
JPH05341961A (ja) 整列のカストマイズ方法
Shishibori et al. An efficient method of compressing binary tries
JPH07319895A (ja) 文書検索装置及び文書検索方法
JP2002063202A (ja) 情報検索システムおよび方法
JPH07129565A (ja) 情報処理装置
JPH03127254A (ja) 単語検索装置
Gupta et al. Compression Using Encryption
JPH01194065A (ja) 文書処理装置
JPH1097542A (ja) 全文検索装置及び全文検索方法

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: 06821953

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2008539647

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 06821953

Country of ref document: EP

Kind code of ref document: A1