WO2008004335A1 - dispositif de recherche de séquence de bits, procédé de recherche et programme - Google Patents
dispositif de recherche de séquence de bits, procédé de recherche et programme Download PDFInfo
- Publication number
- WO2008004335A1 WO2008004335A1 PCT/JP2007/000639 JP2007000639W WO2008004335A1 WO 2008004335 A1 WO2008004335 A1 WO 2008004335A1 JP 2007000639 W JP2007000639 W JP 2007000639W WO 2008004335 A1 WO2008004335 A1 WO 2008004335A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- node
- search
- key
- tree
- branch
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 79
- 238000003780 insertion Methods 0.000 claims description 76
- 230000037431 insertion Effects 0.000 claims description 76
- 238000012217 deletion Methods 0.000 claims description 17
- 230000037430 deletion Effects 0.000 claims description 17
- 238000012966 insertion method Methods 0.000 claims description 5
- 238000012423 maintenance Methods 0.000 abstract description 6
- 238000012545 processing Methods 0.000 description 97
- 238000010586 diagram Methods 0.000 description 30
- 241000712062 Patricia Species 0.000 description 12
- 238000004364 calculation method Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- ZQPPMHVWECSIRJ-KTKRTIGZSA-N oleic acid group Chemical group C(CCCCCCC\C=C/CCCCCCCC)(=O)O ZQPPMHVWECSIRJ-KTKRTIGZSA-N 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90344—Query processing by using string matching techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/31—Indexing; Data structures therefor; Storage structures
- G06F16/316—Indexing structures
- G06F16/322—Trees
Definitions
- Bit string search device search method and program
- the present invention relates to a search device for searching for a desired bit string from a set of bit strings, and particularly to a technical field in which a data structure for storing bit strings is devised to improve search speed and the like.
- index keys are expressed as bit strings, it can be said that the database search results in a bit string search.
- FIG. 17 shows an example of a Patricia tree used in the above-described conventional search processing.
- the Patricia tree node includes an index key, a check bit position of the search key, and left and right link pointers.
- the node contains information to access the record corresponding to the index key, although it is not specified.
- the node 1750a holding the index key “100010” is the root node, and the check bit position is 0.
- Node 1750a has left link 1740a connected to node 1750b and right link 174 ⁇ i — 17501 ⁇ .
- the index key held by the node 1750b is "010011", and the check bit position 1730b is 1.
- Node 1750c is connected to left link 1740b of node 1750b, and node 1750d is connected to right link 1741b.
- the index key held by the node 1750G is “000111”, and the check bit position is 3.
- the index key held by the node 1750d is “011010” and the check bit position is 2.
- the right pointer 1741d of the node 1750d points to the node 1750d itself, and the node 1750e is connected to the left link 1740d.
- the index key held by 1750e is "010010" and the check bit position is 5.
- the left pointer 1740e of the node 1750e points to the node 1750b, and the right pointer 1741e points to the node 1750e.
- the index key held by the node 1750f is "101011", and the check bit position 1730f is 2.
- Node 1750g is connected to left link 1740f of node 1750f, and node 1750h is connected to right link 1741f.
- the index key held by the node 1750g is "100011", and the check bit position 1730g is 5.
- the left pointer 1740g of node 1750g points to node 1750a, and the right pointer 1741g points to node 1750g.
- the index key held by the node 1750h is "101100", and the check bit position 1730h is 3.
- the left pointer 1740h of node 1750h points to node 1750f, and the right pointer 1741h points to node 1750h.
- the check bit position of each node is configured to increase as the tree descends from the root node 1750a.
- Patent Document 1 there is a technique disclosed in Patent Document 1 below to attempt to eliminate the disadvantages of these Patricia trees.
- the lower left and right nodes are stored in a continuous area to reduce the pointer storage capacity, and whether the next link power ⁇ / link By providing each node with a bit indicating whether or not, the back link determination process is reduced.
- Patent Document 1 Japanese Patent Laid-Open No. 2 0 0 1 _ 3 5 7 0 70
- the problem to be solved by the present invention is a data structure of a bit string to be searched for, which requires a small storage capacity, a high search speed, and an easy data maintenance data structure. It is to provide a bit string search device and a search method provided.
- a tree having the following data structure named as a coupled node tree is provided.
- an index key is searched using this coupled node tree. .
- the coupled node tree of the present invention includes a branch node having linked data and a leaf node having an index key to be searched.
- the tree structure is composed of a root node and a node pair of a branch node and leaf nodes or branch nodes or leaf nodes arranged in adjacent storage areas.
- the branch node includes a discrimination bit position of a search key and a representative node number for linking to a representative node which is one of the linked node pairs, and the leaf node is composed of a bit string to be searched. Contains the index key.
- the root node is a branch node except when there is only one node in the tree.
- the discrimination bit position of the search key is the same as the check bit position of the Patricia tree in that the bit value at that position of the search key is used, but in the Patricia tree, the bit value of the check bit position is determined to determine the link destination.
- the coupled node tree of the present invention is different in that the bit value at the discrimination bit position is used in the calculation for obtaining the link destination node.
- Execution of a search using a search key is performed on one node of a link destination node pair according to the bit value of the search key at the discrimination bit position included in the branch node at each branch node including the root node. Linking is done by sequentially repeating until the leaf node.
- the index key held by the leaf node is compared with the search key, and if they match, the search is successful. If they do n’t match, No index key matches the search key.
- a search is first performed using the index key as a search key, and the index key of the found leaf node is acquired. Also, branch node numbers up to the leaf note are stored in the stack sequentially from the root node.
- a size comparison and a bit string comparison are performed between the index key to be added and the index key acquired by the search, and the first (most significant) bit position and a bit value that are different in the bit string comparison are stored in the stack.
- the insertion position of the node pair to be added is determined by the relative positional relationship with the discrimination bit position of the branch node, and the leaf node including the index key to be added by the size relationship is set as which node of the node pair to be added To decide.
- the force Pludno-Dolly according to the present invention has a tree structure composed of node pairs, and the size of the index key set can be made compact.
- a node that requires pointer information has a pointer information, but an area for an index key is required.
- a node that requires an index key does not need an area for a pointer, so there is no waste in the storage area. Also, there is no need for backlink processing like Patricia Tree.
- the pointer can be an array number, and the required storage capacity can be further reduced.
- the storage capacity for storing the tree structure used for the search can be reduced, and the search processing load can be reduced accordingly.
- the branch node is arranged so as to hold the discrimination bit position defined by the bit string configuration of the index included in the coupled node tree, so only the processing at the required bit position is performed. The burden is small. Also, the bit value at the discrimination bit position is not used for determination processing but for calculation processing, so the CPU processing burden is reduced in this respect as well.
- Coupled node tree insertion processing and deletion processing are simple, and the maintenance burden is reduced.
- bit string search device that can execute a bit string search at high speed and can easily perform data maintenance is provided.
- FIG. 1 is a diagram for explaining a configuration example of a coupled node tree stored in an array.
- FIG. 2 is a diagram for explaining a structure of a force Prudno-Dolly.
- FIG. 3 is a diagram for explaining an example of a hardware configuration for carrying out the present invention.
- FIG. 4 is a flowchart showing search processing in an embodiment of the present invention.
- FIG. 5 is a diagram showing a processing flow of search processing, which is the first stage of insertion processing in one embodiment of the present invention.
- FIG. 6 is a diagram illustrating a processing flow for preparing an array element for a node pair to be inserted in the insertion processing in one embodiment of the present invention.
- FIG. 7 is a diagram showing a processing flow for finding a position to insert a node pair, writing the contents of each node of the node pair, and completing the insertion process.
- FIG. 8 is a process flow diagram illustrating an entire node insertion process when adding an index key including a root node insertion process according to an embodiment of the present invention.
- FIG. 10 illustrates a processing flow subsequent to deletion processing according to an embodiment of the present invention.
- FIG. 1 1A A diagram illustrating a coupled node tree before deletion processing and a deletion key "01 1 01 0".
- FIG. 11B is a diagram illustrating a coupled node tree after deletion processing.
- FIG. 12A is a diagram for explaining a coupled node tree and an insertion key “001 1” before insertion processing.
- FIG. 12B is a diagram illustrating a coupled node tree after insertion processing.
- FIG. 13 is a diagram for explaining the flow of processing blocks in the search process that is the first stage of the insertion process shown in FIG. 5.
- FIG. 14 is a diagram for explaining a flow of a processing block for preparing array elements for the node pair to be inserted shown in FIG.
- FIG. 15 is a diagram for explaining the processing flow for obtaining the position on the coupled node of the node pair to be inserted in the first half of the processing shown in FIG.
- FIG. 16 is a diagram for explaining the processing flow for completing the insertion processing by setting data in each node in the latter half of the processing shown in FIG.
- FIG. 17 is a diagram showing an example of a Patricia tree used in a conventional search. BEST MODE FOR CARRYING OUT THE INVENTION
- Data indicating the link destination position held by a branch node can also be used as address information of a storage device.
- Array consisting of array elements that can store the larger storage capacity of the area occupied by a branch node or leaf node
- the position of the node can be expressed by an array number, and the amount of position information can be reduced.
- FIG. 1 is a diagram illustrating a configuration example of a coupled node tree stored in an array.
- node 1 01 is placed in the array element of array number 1 0 of array 100.
- Node 1 01 is node type 1 02, discrimination bit position 1 03 and representative node number No. 104.
- Node type 102 is 0, indicating that node 101 is a branch node. 1 is stored in the discrimination bit position 103.
- the representative node number 104 the array number 20 of the representative node of the link destination node pair is stored.
- the array number stored in the representative node number is sometimes referred to as the representative node number.
- the array element number stored in the representative node number may be represented by a code attached to the node or a code attached to the node pair.
- the array element of array element number 20 stores node [0] 112, which is the representative node of node pair 111.
- the next adjacent array element (array number 20 + 1) stores node [1] 113 paired with the representative node.
- the node type further IJ1 14 of node [0] 112 stores 0, the discrimination bit position 115 stores 3, and the representative node number 116 stores 30.
- 1 is stored in the node type 117 of the node [1] 113, which indicates that the node [1] 113 is a leaf node.
- the index key 118 stores “0001”. As described above for the Patricia tree, it is natural that the leaf node contains information for accessing the record corresponding to the index key, but the notation is omitted.
- a representative node may be represented by a node [0] and a pair of nodes may be represented by a node [1].
- the contents of the node pair 121 composed of the node 122 and the node 123 stored in the array elements of the array element numbers 30 and 31 are omitted.
- 0 or 1 assigned to the stored array elements of the node [0] 112, the node [1] 113, the node 122, and the node 123 is a node pair when a search is performed using a search key. Which node is linked to.
- the search key bit value 0 or 1 in the discrimination bit position of the preceding branch node is linked to the node of the array number with the representative node number added.
- the array element number of the array element in which the link destination node is stored can be obtained.
- the representative node number is the smaller of the array element numbers in which the node pairs are arranged, but it is obvious that the larger one can be adopted.
- Figure 2 is a diagram conceptually showing the tree structure of a coupled node tree.
- the 6-bit index key shown in the figure is the same as the one of the patricia illustrated in FIG.
- Reference numeral 210a indicates a root node.
- the root node 210 a is a representative node of the node pair 201 a arranged at the array element number 220.
- a note pair 201b is arranged below the root node 210a, a node pair 201c and a node pair 201f are arranged below it, and a node pair 201h and a node pair 201 are arranged below the node pair 201f.
- g is arranged.
- a node pair 201 d is arranged under the node pair 201 c, and a node pair 201 e is arranged therebelow.
- the code 0 or 1 added in front of each node is the same as the code assigned in front of the array element described in FIG. According to the bit value of the discrimination bit position of the search key, the leaf node to be searched is found by following the tree.
- the node type 260a of the root node 210a is 0, indicating that it is a branch node, and the discrimination bit position 230a indicates 0.
- the representative node number is 220a, which is the array element number of the stored array element of the representative node 210b of the node pair 201b.
- the node pair 201b is composed of nodes 210b and 21 1b, and the node types 260b and 261b are both 0, indicating that they are branch nodes. 1 is stored in the discrimination bit position 230b of the node 210b, and the array element number 220b of the array element in which the representative node 210c of the node pair 201c is stored is stored in the link destination representative node number.
- this node is a leaf node, and therefore includes an index key.
- the index key 250c contains "0001 1 ⁇ .
- the node 21 1 c The type 261G is 0, the discrimination bit position 231G is 2, and the representative node number stores the array element number 221G of the array element in which the representative node 21 Od of the node pair 201d is stored.
- the node type 261d of the node 211d that is paired with the node 210d is 1, and "011010" is stored in the index key 251d.
- the node types 260e and 261e of the nodes 210e and 211e of the node pair 201e are both 1, indicating that both are leaf nodes, and the index keys 250e and 251e are index keys. “010010” and “010011” are stored.
- [0044] 2 is stored in the discrimination bit position 231b of the node 211b, which is the other node of the node pair 201b, and the representative node number of the node pair 201f is 21 Of in the representative node number of the link destination.
- the array element number 221b of the stored array element is stored.
- the node types 260f and 261f of the nodes 21Of and 211f of the node pair 201f are both 0, and both are branch nodes. 5 and 3 are stored in the discrimination bit positions 230f and 231f, respectively.
- the array node number 220f of the array element in which the representative node 210g of the node pair 201g is stored is stored in the representative node number of the node 210f, and the node [0] that is the representative node of the node pair 201h is stored in the representative node number of the node 211f.
- Array number 221 f of the stored array element of 210h is stored.
- Node types 210g and 211g of node pair 201g are both 1, indicating that both are leaf nodes. "100010" and “100011" for index keys 250g and 251g, respectively. Is stored.
- node [0] 210h which is the representative node of node pair 201h, and node pair [1] 211h, node types 260h and 261h are both 1, indicating that both are leaf nodes.
- Each index key 250h, 251h contains "10101 1" and "101100".
- the discrimination bit position is 0, 1, 2, ⁇ ⁇ 'from the left. First, processing is started from the root node 210a using the bit string “100010” as a search key.
- the bit value of the discrimination bit position 0 of the search key “100010” is 1. Therefore, link is made to the node 21 1 b stored in the array element of the array element number obtained by adding 1 to the array element number 220a storing the representative node number. Since 2 is stored in the discrimination bit position 231 b of the node 21 1 b, the bit value of the discrimination bit position 2 of the search key “100010” is 0, so the array in which the representative node numbers are stored The node 2101 ⁇ stored in the array element with the number 221 b is linked.
- node type 260g of node 210g is 1, indicating that it is a leaf node, when index key 250g is read and compared with the search key, both are "100010" and match. In this way, a search using a coupled node tree is performed.
- the configuration of a coupled node tree is defined by a set of index keys.
- the discrimination bit position of the root node 210a is 0 because the index key illustrated in FIG. 2 includes the 0th bit having 0 and the 1st bit.
- the group of index keys whose 0th bit is 0 is classified under the node 210b, and the group of index keys whose 0th bit is 1 is classified under the node 21 1b.
- the discrimination bit position of node 21 1 b is 2 because the 0th bit stored in nodes 21 1 h, 210h, 21 1 g, and 2 10g is 0 for all 1st bits of the index key. And reflects the nature of the set of index keys, with the first bit being different for the first time.
- the case where the second bit is 1 is classified on the node 21 1 f side
- the case where the second bit is 0 is classified on the node 210f side. Since the second bit key ⁇ 1 has an index key different from the third bit, 3 is stored in the discrimination bit position of the node 21 1 f, and the second bit key ⁇ 0 has an index key of the third bit. Since the 4th bit is the same and the 5th bit is different, 5 is stored in the discrimination bit position of the node 210f.
- nodes 210h and 211h are leaf nodes, respectively. “101011” and “101100” are stored in 250h and 251h.
- the structure of the coupled node tree is determined by the bit value of each bit position of each index key included in the set of index keys.
- the index key follows the route placed on the force node tree. For example, if the search key is "10110 0", the node 211h can be reached. Also, as you can imagine from the above explanation, even when "101101" force and "101110" are used as search keys, it reaches node 211h and it can be seen that the search failed by comparing with index key 251h. .
- the nodes 210a, 211b, 210f In the link path the 3rd and 4th bits of the search key are not used, and the 5th bit of "100100" is 0, so the node reaches 210 g as in the case of searching for "100010". become. In this way, branching is performed using the discrimination bit position corresponding to the bit configuration of the index key stored in the coupled node tree.
- FIG. 3 is a diagram for explaining an example of a hardware configuration for carrying out the present invention.
- Search processing and data maintenance by the search device of the present invention are performed by the data processing device 301 including at least the central processing unit 302 and the cache memory 303 using the data storage device 308.
- a data storage device 308 having a search path stack 310 for storing an array 309 in which a coupled node tree is arranged and an array element number in which a node to be traced is stored is a main storage device 305 or an external storage device 306 Alternatively, it is possible to use a remote device connected via the communication device 307.
- the main storage device 305, the external storage device 306, and the communication device 307 are connected to the data processing device 301 by the single bus 304, but the connection method is not limited to this.
- the main storage device 305 can be in the data processing device 301, and the search path stack 310 can be realized as a hard disk in the central processing unit 302.
- the array 309 has the external storage device 306 and the search path stack 310 in the main storage device 305, and it is clear that the hardware configuration can be selected appropriately according to the available hardware environment, the size of the index key set, etc. It is.
- FIG. 4 is a flowchart showing search processing according to an embodiment of the present invention. The search processing algorithm will be described with reference to Figure 2 as appropriate.
- the array element number of the root node of the coupled node tree to be searched is acquired (step S401). Since a coupled node tree can be identified by its root node array number, the coupled node tree can be managed using the root node array number. Therefore, it is assumed that the root node array number of the coupled node tree is registered in the coupled node tree management means.
- the above-described coupled node tree management means stores, for example, a program on a program that causes a computer to execute the search process. It can be an area.
- search system When a search system using a plurality of coupled node trees is mounted on one computer system, the search system can be provided outside each search program.
- this corresponds to obtaining SEQ ID NO: 220.
- the acquisition of the array number of the root node is not limited to the above method, and the array number may be directly input from a keyboard or the like, or may be set in advance in the program as a fixed value.
- step S402 the array element number acquired in step S401 is stored in the search path stack. Proceeding to step S403, the array element having the array element number stacked at the top of the search path stack is read out from the array as a link destination node. In step S404, the node type is extracted from the node read in step S403.
- step S405 the node type is determined. If the determination in step S405 is a branch node, the process proceeds to step S406.
- step S406 the discrimination bit position is extracted from the node.
- step S407 the bit value of the discrimination bit position extracted in step S406 is acquired from the search key.
- step S408 the array element number of the representative node of the link destination node pair is obtained from the node. Subsequently, the process proceeds to step S409, where the array element number acquired in step S408 is added to the array element number acquired in step S408 to acquire the array element number of the link destination node, and the process returns to step S402.
- step S402 the array element number obtained in step S409 is stored in the search path stack.
- step S402 to S409 is repeated until the determination at step S405 becomes a lift node.
- step S405 If it is determined in step S405 that the node type is a leaf node, the process proceeds to step S410, and an index key is extracted from the node. Then, the process proceeds to step S411 to determine whether the search key and the index key are equal. If they are equal, the search is successful, and if they are not equal, the search is unsuccessful.
- the stack is used to identify the array element number of the node being processed, but an ordinary work area can also be used as a temporary storage for searching only.
- an ordinary work area can also be used as a temporary storage for searching only.
- it is effective to use the stack so it is preferable to use the stack in the search process.
- FIGS. 5 to 7 illustrate normal insertion processing
- FIG. 8 illustrates root node insertion processing. Since the coupled node tree is generated by the root node insertion process and the normal insertion process, the description of the node insertion process is also the description of the coupled node tree generation process.
- FIG. 5 is a diagram showing the processing flow of the search process that is the first stage of the insert process, and corresponds to the search key shown in FIG. 4 with the insert key as the search key.
- the processing from step S501 to step S510 corresponds completely to step S401 to step S410 in FIG.
- step S51 1 of FIG. 5 the insert key is compared with the index key. If they are equal, the insert key already exists in the coupled node tree. Input fails and processing ends. If they are not equal, the process proceeds to the next process, step S512 and subsequent steps in FIG.
- FIG. 6 is a processing flowchart for explaining processing for preparing an array element for a node pair to be inserted.
- step S512 an empty node pair is obtained from the array, and the array element number of the array element to be the representative node of the node pair is acquired.
- step S513 the size of the insertion key and the index key obtained in step S510 are compared, and a value 1 is obtained when the insertion key is large, and a Boolean value 0 is obtained when the insertion key is small.
- an array element number is obtained by adding the Boolean value obtained in step S513 to the array element number of the representative node obtained in step S512.
- an array element number is obtained by adding the logical negation value of the Boolean value obtained in step S513 to the array element number of the representative node obtained in step S512.
- the array number obtained in step S514 is the array element number of the array element in which the leaf node having the insertion key as an index key is stored.
- the array number obtained in step S515 is stored in the branch node that forms a pair with the leaf node.
- the leaf node holding the insertion key is stored in either node of the inserted node pair. Is decided.
- the index key of the search result is “011010” stored in the node 211d.
- a Boolean value is obtained by comparing the size of the insertion key “011011” and the index key “011010” stored in the node 211d.
- the Boolean value 1 is obtained, and the node pair to be inserted
- the leaf node that holds the insertion key is stored in the array element with 1 added to the representative node number.
- the index key “011010” is stored in the array element of the array number obtained by adding the logical inversion of the Boolean value obtained by the size comparison to the representative node number.
- the node 21 1d has the discrimination bit position set to 5 and the representative node number is inserted. It becomes a branch node with the array element number of the representative node of the node pair.
- FIG. 7 is a diagram showing a processing flow for storing the node in the array prepared in FIG. 6, obtaining the insertion position, changing the contents of the existing node, and completing the insertion process.
- step S523 The processing from step S51 6 to step S523 is processing for obtaining the position on the coupled node tree of the node pair to be inserted, and the processing after step S524 is processing for setting the data in each node and completing the insertion processing. is there.
- step S516 the bit string comparison between the insertion key and the index key obtained in step S510 is performed by, for example, exclusive OR, to obtain a differential bit string.
- the bit position of the first non-matching bit viewed from the upper 0 bit is obtained from the difference bit string obtained in step S516.
- a difference bit string is input to the CPU and a bit position that does not match can be obtained. It is also possible to obtain the bit position of the first non-matching bit by performing processing equivalent to that of the priority encoder in software.
- step S518 it is determined whether the stack pointer of the search path stack points to the array element number of the root node. If so, go to Step S524 If not, go to step S519.
- step S519 the stack pointer of the search path stack is returned by 1, and the array element number stacked there is extracted.
- step S520 the array element having the array element number extracted at step S519 is read out as a node from the array.
- step S521 the discrimination bit position is extracted from the node read out at step S520.
- the discrimination bit position taken out at step S521 is higher than the bit position obtained at step S517.
- the upper positional relationship is a position on the left side of the bit string, that is, a position where the value of the bit position is small.
- step S522 If the determination result in step S522 is negative, the process returns to step S518, and is repeated until the determination in step S518 is affirmative or the determination in step S522 is affirmative. If the determination in step S522 is affirmative, the stack pointer of the route search stack is advanced by 1 in step S523, and the process proceeds to step S524 and subsequent steps.
- step S516 to step S523 described above performs bit string comparison between the index key to be inserted and the index key obtained by the search in order to determine the insertion position of the node pair to be inserted.
- the relative positional relationship between the first (most significant) bit position, which is a different bit value in the comparison, and the discrimination bit position of the branch node stored in the search path stack is examined, and the discrimination bit position is The link destination of the branch node next to the branch node becomes the insertion position of the node pair to be inserted.
- the index key of the search result is “101011” stored in the node 210h.
- the most significant bit position 1 which is a different bit value is obtained.
- Discrimination bit position indicates the positional relationship between the obtained bit position 1 and the discrimination bit position of the branch node stored in the array element with the array element number stacked in the path search stack. If the path search stack is followed in reverse until the position becomes higher, the route node 210a is reached. Therefore, the pointer of the search path stack is advanced by 1, and the array element number of node 211 b is obtained.
- the insertion key “111000” is inserted into the link destination of the node 211b.
- the discrimination bit position of the root node becomes a different bit value in the bit string comparison obtained earlier, and is not a higher bit position than the highest bit position.
- the value of the upper bits of the index key of the coupled node tree and the values of the bits higher than the discrimination bit position of the root node are all equal.
- an index key to be inserted has a bit value different from the value of the bit higher than the discrimination bit position of the root node. Therefore, the node pair to be inserted becomes the direct link destination of the root node, and the discrimination bit position of the root node is changed to the position of the most significant bit of the insertion key, which is different from the existing index key.
- step S524 the array element number pointed to by the stack pointer is extracted from the search path stack.
- step S525 1 (leaf node) is written in the node type of the array element indicated by the array element number obtained in step S514, and the insert key is written in the index key. Proceeding to step S526, the array element having the array element number obtained at step S524 is read from the array.
- step S527 the contents read in step S526 are written in the array element having the array element number obtained in step S515.
- step S528 0 (branch node) is obtained as the node type of the array element indicated by the array number obtained in step S524, the bit position obtained in step S517 is obtained as the discrimination bit position, and the representative node number is obtained in step S512. Write the sequence number and finish the process.
- step S5 27 The contents of node 21 1 b are written to node [0] of the obtained empty node pair (step S5 27), and node [1] is made a leaf node holding the insertion key “1 1 1000” (step S525). ) Then, the most significant bit position 1 which becomes a different bit value by bit string comparison is stored in the discrimination bit position of the node 21 1 b, and the representative node number is an array element in which the representative node of the obtained node pair is stored Is stored (step S528).
- FIG. 8 is a process flow diagram illustrating the entire node insertion process when adding an index key including a root node insertion process according to an embodiment of the present invention.
- step S551 it is determined whether the array number of the root node of the coupled node requested to be acquired has been registered. If registered, the normal insertion process described with reference to FIGS. 5 to 7 is performed.
- step S552 an empty node pair is obtained from the array, and the array element number of the array element to be the representative node of the node pair is acquired.
- step S553 the sequence number obtained by adding 0 to the sequence number obtained in step S552 is obtained. (In fact, it is equal to the array element number obtained in step S552.)
- step S554 the node type of the root node to be inserted is set to 1 (leaf node) in the array element of the array element number obtained in step S553.
- the insert key is written in the index key, the array element number of the root node acquired in step S552 is registered in step S556, and the process is terminated.
- FIG. 9 is a diagram showing a processing flow of search processing that is the first stage of deletion processing.
- step S901 to step S910 corresponds completely to step S401 to step S410 in FIG.
- step S911 in FIG. 9 the delete key and the index key are compared. If not, the index key to be deleted does not exist in the force key, so the deletion fails and the process finish. If they are equal, the process proceeds to the next process, and the process after step S912 in FIG.
- FIG. 10 is a diagram for explaining the processing flow of the latter stage of the deletion processing.
- step S912 it is determined whether two or more array numbers are stored in the search path stack.
- the fact that two or more array numbers are not stored is, in other words, only one, and the array number is that of the array element in which the root node is stored. In that case, the process proceeds to step S918, and the node pair related to the root node array number obtained in step S901 is deleted. In step S919, the registered root node array element number is deleted and the process is terminated.
- step S912 If it is determined in step S912 that two or more array element numbers are stored in the search path stack, the process proceeds to step S913, and the representative node number obtained in step S908 is set to the bit value obtained in step S907.
- the sequence number is obtained by adding the inverted values of. In this process, the array element number in which the node that is paired with the leaf node storing the index key to be deleted is obtained.
- step S914 the contents of the array element having the array element number obtained in step S913 are read, and in step S915, the stack pointer of the search path stack is returned by 1 to extract the array element number.
- step S916 the contents of the array element read in step S914 are overwritten on the array element of the array element number obtained in step S915.
- the branch node that is the link source to the leaf node storing the index key to be deleted is replaced with a node paired with the leaf node.
- step S917 the node pair related to the representative node number obtained in step S908 is deleted, and the process ends.
- FIGS. 11A and 11B are diagrams for explaining the process of deleting the index key “011010” from the coupled node tree illustrated in FIG.
- nodes below node pair 201 f are not shown.
- the index key “011010” to be deleted is stored in the deletion key 270 which is a temporary storage area.
- the stack pointer of the search path stack 280 points to the array element number 221 G + 1, indicating that the search process has been completed.
- the nodes surrounded by a thick frame in the figure are the nodes traced by the search process, and the array element numbers are stacked on the search path stack 280 from the root node 210a to the leaf node 211d.
- the node 210b is read, the discrimination bit position 230b is 1, and the bit value of the bit position 1 of the deletion key is 1. Therefore, the representative node number 220b + 1 is stored in the search path stack 280.
- node 211 G since node 211 G is read, discrimination bit position 231 G is 2, and the bit value of bit position 2 of the delete key is 1, the representative node number 221 G + 1 is the search path stack.
- the node type 261 d of node 211 d stored in the array element with the array element number 221 G + 1 indicates that it is 1 and it is a leaf node, so when index key 251 d is taken out, its value is "011010 "And matches the index key to be deleted stored in the delete key 270.
- the coupled node tree shown in Figure 1 1 B is the one after the deletion process. As shown in parentheses, the value stored in the node 210d is stored as it is in the node type 261c, the discrimination bit position 231c, and the representative node number 222c of the node 211c.
- Figure 12 A shows a temporary storage area that holds a coupled node tree that has bit strings "0100”, “0001", and "0000” as index skis and an insertion key "0011" to be inserted. 1250.
- the tree shown is composed of node pairs 1201a, 1201b, 1201c.
- the representative node of the node pair 1201a is the root node 1210a, and 1 is held in the discrimination bit position.
- the representative node 1210b of the node pair 1201b lower than the node pair 1201a is a branch node, 3 is held in the discrimination bit position, the node 1211b paired with the representative node 1210b is a leaf node, and the index key " 0100 "is held.
- the nodes 1210G and 1211G constituting the node pair 1201G are both leaf nodes and hold index keys “0000” and “0001”, respectively.
- FIG. 12B shows a coupled node tree in which the insertion key “0011” is inserted.
- a new node pair 1201d is inserted between the node pair 1201b and the node pair 1201c.
- FIGS. 12A and 12B will be described with reference to FIGS. 13 to 16 with appropriate reference to FIGS. Indicated in bold lines in Figs. 13 to 16
- the flow of processing is in accordance with the example of FIGS. 12A and 12B.
- the reference numeral S 501 etc. indicates that the processing of that part corresponds to the processing in step S 501 etc. described in FIGS.
- FIG. 13 is a diagram for explaining the flow of the processing block in the search processing that is the first stage of the insertion processing shown in FIG.
- the root node is set in the first processing block.
- the position of the drill node is set by obtaining the root node array number.
- the acquired array element number 1210a is stored in the search path stack.
- the code representing the array element number is also used as the code representing the node.
- step S505 it is determined that the node 1210a is a branch node, and branch processing is performed.
- the node position of the link destination is calculated by adding “0” of the first bit of the insertion key “0011” and the array element number 1201b stored in the representative node number of the node 1210a.
- the array element number stored in the representative node number is represented by the symbol of the link destination node pair.
- the calculated node position 1210b is stored in the search path stack.
- the node read determination process is performed again, and the node 121 Ob is read out and determined to be a branch node.
- branch processing is performed again, and the node number of the link destination is calculated by adding “1” of the third bit of the insertion key “0011” and the array element number 1201c stored in the representative node number of the node 1210b.
- the calculated node position 1211c is stored in the searched route stack.
- the process branches to leaf processing, and the bit string comparison of the index key “0001” and the insertion key “0011” of the node 1211c is performed. If it does not match, proceed to the next process.
- FIG. 14 is a diagram for explaining the flow of the processing block for preparing an array element for the node pair to be inserted shown in FIG.
- the representative node number 1201 d related to the array number of two free array elements in a continuous area from the array is acquired.
- the size of the insertion key "001 1" is compared with the index key "0001" obtained in step S510, and two array elements obtained in the empty node pair acquisition block Of which the leaf node holding the insert key is stored in which array element. Since the insertion key is large as a result of the comparison, the leaf node holding the insertion key is stored as node 1 21 1 d in the array element of the array element number obtained by adding 1 to the representative node number 1 201 d.
- FIG. 15 is a diagram for explaining the processing flow for obtaining the position on the coupled node of the node pair to be inserted in the first half of the processing shown in FIG.
- differential bit position detection block an exclusive OR “0010” for each bit of the insertion key “001 1” and the index key “0001” obtained in step S510 is calculated, and the differential bit position is the second bit. Is required.
- the pointer is compared with the difference bit position of the node stored in the array element of the array number pointed to by the pointer in the search path stack until the discrimination bit position becomes higher. Are returned in order. If the boyer points to the root node array number in the middle, the insertion position will be directly below the root node.
- the insertion node position search process is started by returning the pointer by one, and the node Take out the storage location of 1 210b and read node 1 210b put out.
- the discrimination bit position of node 1 210b is 3, which is lower than the difference bit position 2. Since node 1 210b is not the root node, the search for the insertion node position is continued.
- array element number 1 210b is read as the position to insert the insertion node.
- FIG. 16 is a diagram for explaining a processing flow for completing the insertion processing by setting data in each node in the latter half of the processing shown in FIG.
- Leaf node assembly In the write block, a leaf node storing 1 for the node type and the insertion key "001 1" for the index key is assembled, and the array calculated by the node storage location calculation block shown in Figure 14 Store in array element number 1 21 1 d
- node 1 210b of the array element number read by the insertion node position read block shown in FIG. 15 is read, and the contents are shown in FIG. Stored in the array element of array element number 1 210d calculated by the node storage position calculation block.
- 0 is stored as the node type, and the differential bit position 2 detected by the differential bit position detection block shown in Fig. 15 is stored in the discrimination bit position.
- a branch node storing the representative node number 1201d acquired in the empty node pair acquisition block shown in FIG. 14 is assembled.
- the assembled branch node is written in the array element of array element number 1210b read by the insertion node position read block shown in FIG.
- bit string search device of the present invention can be constructed on a computer by storage means for storing a coupled node tree and a program for causing the computer to execute the processing shown in FIG.
- the index insertion method of the present invention can be realized by a program that causes a computer to execute the index insertion processing shown in FIGS. 8 and 5 to 7 and its equivalent, and FIG. 9 and FIG. It is also clear that the index insertion method of the present invention can be realized by a program that causes a computer to execute the deletion processing shown in FIG.
- the means for identifying the branch node and the leaf node, the means for linking to either of the linked node pairs according to the discrimination bit position of the branch node, etc. are realized on the computer.
- the program and a computer-readable storage medium storing the program are included in the embodiment of the present invention. Furthermore, the data structure of the coupled node tree of the present invention is also included in the embodiment of the present invention.
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)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
Claims
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE602007013905T DE602007013905D1 (de) | 2006-07-07 | 2007-06-15 | Bitsequenz-sucheinrichtung, suchverfahren und programm |
EP07766946A EP2048584B1 (en) | 2006-07-07 | 2007-06-15 | Bit sequence search device, search method, and program |
CN2007800255634A CN101484895B (zh) | 2006-07-07 | 2007-06-15 | 比特序列检索装置以及检索方法 |
US12/308,560 US8073874B2 (en) | 2006-07-07 | 2007-06-15 | Bit string searching apparatus, searching method, and program |
US12/385,956 US8150856B2 (en) | 2006-07-07 | 2009-04-24 | Bit string searching apparatus, searching method, and program |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006-187827 | 2006-07-07 | ||
JP2006187827A JP4271214B2 (ja) | 2006-07-07 | 2006-07-07 | ビット列検索装置、検索方法及びプログラム |
Related Child Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/308,560 A-371-Of-International US8073874B2 (en) | 2006-07-07 | 2007-06-15 | Bit string searching apparatus, searching method, and program |
PCT/JP2007/001120 Continuation-In-Part WO2008053583A1 (fr) | 2006-07-07 | 2007-10-16 | Procédé et programme de recherche de séquence de bits |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2008004335A1 true WO2008004335A1 (fr) | 2008-01-10 |
Family
ID=38894310
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2007/000639 WO2008004335A1 (fr) | 2006-07-07 | 2007-06-15 | dispositif de recherche de séquence de bits, procédé de recherche et programme |
Country Status (7)
Country | Link |
---|---|
US (1) | US8073874B2 (ja) |
EP (1) | EP2048584B1 (ja) |
JP (1) | JP4271214B2 (ja) |
CN (1) | CN101484895B (ja) |
DE (1) | DE602007013905D1 (ja) |
TW (1) | TW200817945A (ja) |
WO (1) | WO2008004335A1 (ja) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009004796A1 (ja) * | 2007-07-03 | 2009-01-08 | S.Grants Co., Ltd. | ビット列検索方法及びプログラム |
WO2009034689A1 (ja) * | 2007-09-14 | 2009-03-19 | S.Grants Co., Ltd. | ビット列検索装置、検索方法及びプログラム |
WO2009072233A1 (ja) * | 2007-12-05 | 2009-06-11 | S.Grants Co., Ltd. | ビット列のマージソート装置、方法及びプログラム |
WO2009084145A1 (ja) * | 2007-12-28 | 2009-07-09 | S.Grants Co., Ltd. | データベースのインデックスキー更新方法及びプログラム |
WO2009090697A1 (ja) * | 2008-01-17 | 2009-07-23 | S.Grants Co., Ltd. | ビット列検索装置、検索方法及びプログラム |
WO2009093290A1 (ja) * | 2008-01-22 | 2009-07-30 | S.Grants Co., Ltd. | ビット列検索装置、検索方法及びプログラム |
EP2149845A4 (en) * | 2007-04-19 | 2010-12-08 | S Grants Co Ltd | COUPLING KNOB TREE SAVE / RESTORE PROCEDURE, POLLING PROCEDURE WITH THE LONGEST CONSISTENCY / SHORTEST CONSISTENCY, BIT POLLING PROCESS AND STORAGE MEDIUM |
CN102449624A (zh) * | 2009-03-29 | 2012-05-09 | 新叶股份有限公司 | 码串检索装置、检索方法以及程序 |
US8214405B2 (en) | 2007-05-18 | 2012-07-03 | S. Grants Co., Ltd. | Longest-match/shortest-match search apparatus, search method, and program |
US8224861B2 (en) | 2006-11-28 | 2012-07-17 | S. Grants Co., Ltd. | Coupled node tree splitting/conjoining method and program |
US8250076B2 (en) | 2007-04-25 | 2012-08-21 | S. Grants Co., Ltd. | Bit string search apparatus, search method, and program |
US8386526B2 (en) | 2007-04-19 | 2013-02-26 | KOUSOKUYA, Inc. | Coupled node tree backup/restore apparatus, backup/restore method, and program |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8150856B2 (en) | 2006-07-07 | 2012-04-03 | S. Grants Co., Ltd. | Bit string searching apparatus, searching method, and program |
JP4402120B2 (ja) | 2007-01-24 | 2010-01-20 | 株式会社エスグランツ | ビット列検索装置、検索方法及びプログラム |
JP2009251840A (ja) * | 2008-04-04 | 2009-10-29 | S Grants Co Ltd | ビット列検索装置、検索方法及びプログラム |
JP4514810B2 (ja) | 2008-05-18 | 2010-07-28 | 株式会社エスグランツ | ビット列検索装置、検索方法及びプログラム |
JP2010257427A (ja) * | 2009-04-28 | 2010-11-11 | S Grants Co Ltd | インデックス更新データ作成装置、作成方法及びプログラム |
JP5165662B2 (ja) * | 2009-10-27 | 2013-03-21 | 株式会社高速屋 | ビット列キー分類・分配装置、分類・分配方法及びプログラム |
WO2011064984A1 (ja) | 2009-11-30 | 2011-06-03 | 株式会社エスグランツ | ビット列検索装置、検索方法及びプログラム |
JP5220057B2 (ja) * | 2010-05-27 | 2013-06-26 | 株式会社高速屋 | ビット列検索装置、検索方法及びプログラム |
JP5220047B2 (ja) * | 2009-11-30 | 2013-06-26 | 株式会社高速屋 | ビット列検索装置、検索方法及びプログラム |
CN102184165B (zh) * | 2011-04-22 | 2013-01-02 | 烽火通信科技股份有限公司 | 一种节省内存的lcs算法 |
JP5912714B2 (ja) * | 2012-03-21 | 2016-04-27 | 任天堂株式会社 | データ構造、データ構造生成方法、情報処理装置、情報処理システム、及び情報処理プログラム |
CN103902699B (zh) * | 2014-03-31 | 2017-04-12 | 哈尔滨工程大学 | 一种用于大数据环境下可支持多格式特性的数据空间检索方法 |
JP5960863B1 (ja) * | 2015-03-11 | 2016-08-02 | エヌ・ティ・ティ・コミュニケーションズ株式会社 | 検索装置、検索方法、プログラム、及び記録媒体 |
JP6911877B2 (ja) * | 2018-02-19 | 2021-07-28 | 日本電信電話株式会社 | 情報管理装置、情報管理方法及び情報管理プログラム |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001357070A (ja) | 2000-06-13 | 2001-12-26 | Nec Corp | 情報検索方法及び装置 |
JP2002224581A (ja) * | 2001-01-31 | 2002-08-13 | Kawamoto Kogyo Kk | 竪型ミルのシール構造 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5202986A (en) * | 1989-09-28 | 1993-04-13 | Bull Hn Information Systems Inc. | Prefix search tree partial key branching |
JPH07210569A (ja) | 1994-01-19 | 1995-08-11 | Oki Electric Ind Co Ltd | 情報検索方法および情報検索装置 |
US6012061A (en) * | 1997-11-25 | 2000-01-04 | International Business Machines Corp. | Method and apparatus for deleting nodes in Patricia trees |
US6029170A (en) * | 1997-11-25 | 2000-02-22 | International Business Machines Corporation | Hybrid tree array data structure and method |
US6675163B1 (en) * | 2000-04-06 | 2004-01-06 | International Business Machines Corporation | Full match (FM) search algorithm implementation for a network processor |
CN1432943A (zh) * | 2002-01-17 | 2003-07-30 | 北京标杆网络技术有限公司 | 标杆智能搜索引擎系统 |
JP3691018B2 (ja) | 2002-01-31 | 2005-08-31 | 日本電信電話株式会社 | 最長一致検索回路および方法およびプログラムおよび記録媒体 |
-
2006
- 2006-07-07 JP JP2006187827A patent/JP4271214B2/ja active Active
-
2007
- 2007-06-15 US US12/308,560 patent/US8073874B2/en active Active
- 2007-06-15 DE DE602007013905T patent/DE602007013905D1/de active Active
- 2007-06-15 CN CN2007800255634A patent/CN101484895B/zh not_active Expired - Fee Related
- 2007-06-15 WO PCT/JP2007/000639 patent/WO2008004335A1/ja active Application Filing
- 2007-06-15 EP EP07766946A patent/EP2048584B1/en not_active Not-in-force
- 2007-07-04 TW TW096124374A patent/TW200817945A/zh unknown
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001357070A (ja) | 2000-06-13 | 2001-12-26 | Nec Corp | 情報検索方法及び装置 |
JP2002224581A (ja) * | 2001-01-31 | 2002-08-13 | Kawamoto Kogyo Kk | 竪型ミルのシール構造 |
Non-Patent Citations (4)
Title |
---|
"Algorithm no Sekkei to Kaiseki I", vol. 1ST ED., 30 October 1977, pages: 132 - 136, XP003020565 * |
"Hairetsu o Shitei suruto Memory Ryoiki o Kakuho suru", INTERFACE, vol. 32, no. 2, 1 February 2006 (2006-02-01), pages 49 - 50, XP003020564 * |
"Patorishia Tsuri Patricia Tree)", JOURNAL OF JAPANESE SOCIETY FOR ARITIFICAL INTELLIGENCE, vol. 11, no. 2, 1 March 1996 (1996-03-01), pages 337 - 339, XP003020563 * |
See also references of EP2048584A4 |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8224861B2 (en) | 2006-11-28 | 2012-07-17 | S. Grants Co., Ltd. | Coupled node tree splitting/conjoining method and program |
US8386526B2 (en) | 2007-04-19 | 2013-02-26 | KOUSOKUYA, Inc. | Coupled node tree backup/restore apparatus, backup/restore method, and program |
EP2149845A4 (en) * | 2007-04-19 | 2010-12-08 | S Grants Co Ltd | COUPLING KNOB TREE SAVE / RESTORE PROCEDURE, POLLING PROCEDURE WITH THE LONGEST CONSISTENCY / SHORTEST CONSISTENCY, BIT POLLING PROCESS AND STORAGE MEDIUM |
US8250076B2 (en) | 2007-04-25 | 2012-08-21 | S. Grants Co., Ltd. | Bit string search apparatus, search method, and program |
US8214405B2 (en) | 2007-05-18 | 2012-07-03 | S. Grants Co., Ltd. | Longest-match/shortest-match search apparatus, search method, and program |
WO2009004796A1 (ja) * | 2007-07-03 | 2009-01-08 | S.Grants Co., Ltd. | ビット列検索方法及びプログラム |
US8145665B2 (en) | 2007-07-03 | 2012-03-27 | S. Grants Co., Ltd. | Bit string search apparatus, search method, and program |
WO2009034689A1 (ja) * | 2007-09-14 | 2009-03-19 | S.Grants Co., Ltd. | ビット列検索装置、検索方法及びプログラム |
US8250089B2 (en) | 2007-09-14 | 2012-08-21 | S. Grants Co., Ltd. | Bit string search apparatus, search method, and program |
WO2009072233A1 (ja) * | 2007-12-05 | 2009-06-11 | S.Grants Co., Ltd. | ビット列のマージソート装置、方法及びプログラム |
US8332410B2 (en) | 2007-12-05 | 2012-12-11 | KOUSOKUYA, Inc. | Bit string merge sort device, method, and program |
US8103697B2 (en) | 2007-12-28 | 2012-01-24 | S. Grants Co., Ltd. | Database index key update method and program |
WO2009084145A1 (ja) * | 2007-12-28 | 2009-07-09 | S.Grants Co., Ltd. | データベースのインデックスキー更新方法及びプログラム |
US8195667B2 (en) | 2008-01-17 | 2012-06-05 | S. Grants Co., Ltd. | Bit string search apparatus, search method, and program |
JP2009169715A (ja) * | 2008-01-17 | 2009-07-30 | S Grants Co Ltd | ビット列検索装置、検索方法及びプログラム |
WO2009090697A1 (ja) * | 2008-01-17 | 2009-07-23 | S.Grants Co., Ltd. | ビット列検索装置、検索方法及びプログラム |
WO2009093290A1 (ja) * | 2008-01-22 | 2009-07-30 | S.Grants Co., Ltd. | ビット列検索装置、検索方法及びプログラム |
CN102449624A (zh) * | 2009-03-29 | 2012-05-09 | 新叶股份有限公司 | 码串检索装置、检索方法以及程序 |
CN102449624B (zh) * | 2009-03-29 | 2013-12-18 | 株式会社高速屋 | 码串检索装置、检索方法 |
Also Published As
Publication number | Publication date |
---|---|
DE602007013905D1 (de) | 2011-05-26 |
US8073874B2 (en) | 2011-12-06 |
JP4271214B2 (ja) | 2009-06-03 |
EP2048584B1 (en) | 2011-04-13 |
EP2048584A4 (en) | 2010-03-24 |
JP2008015872A (ja) | 2008-01-24 |
CN101484895A (zh) | 2009-07-15 |
CN101484895B (zh) | 2011-12-28 |
EP2048584A1 (en) | 2009-04-15 |
US20090240655A1 (en) | 2009-09-24 |
TW200817945A (en) | 2008-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4271214B2 (ja) | ビット列検索装置、検索方法及びプログラム | |
JP4514771B2 (ja) | カップルドノードツリーの最長一致/最短一致検索装置、検索方法及びプログラム | |
JP4271227B2 (ja) | ビット列検索装置、検索方法及びプログラム | |
US8224861B2 (en) | Coupled node tree splitting/conjoining method and program | |
JP4527753B2 (ja) | ビット列検索装置、検索方法及びプログラム | |
US8190591B2 (en) | Bit string searching apparatus, searching method, and program | |
JP4439013B2 (ja) | ビット列検索方法及び検索プログラム | |
WO2009084145A1 (ja) | データベースのインデックスキー更新方法及びプログラム | |
US8250089B2 (en) | Bit string search apparatus, search method, and program | |
US8166043B2 (en) | Bit strings search apparatus, search method, and program | |
WO2009122651A1 (ja) | ビット列検索装置、検索方法及びプログラム | |
JP2011018296A (ja) | カップルドノードツリーのインデックスキー挿入/削除方法 | |
JP4567754B2 (ja) | ビット列検索装置、検索方法及びプログラム | |
JP4813575B2 (ja) | ビット列検索装置 | |
WO2010125742A1 (ja) | インデックス更新データ作成装置、作成方法及びプログラム | |
JP2009199577A (ja) | ビット列検索装置、検索方法及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WWE | Wipo information: entry into national phase |
Ref document number: 200780025563.4 Country of ref document: CN |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 07766946 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 12308560 Country of ref document: US |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2007766946 Country of ref document: EP |
|
NENP | Non-entry into the national phase |
Ref country code: RU |