A search system characterized by comprising: an index storage that stores index information about multiple pieces of text data including a word with delimiters added before and after the word, the index information associating n -gram character string patterns with position information indicating positions in which the n -gram character string patterns appear in the text data; an acquirer that acquires a search character string; a search n -gram generator that generates a search n -gram string by adding delimiters before and after the acquired search character string and then extracting a plurality of n -gram character string patterns from the delimited search character string; a search-target finder that reads out, from the index storage, the position information associated with n -gram character string patterns that are not including the delimiter among the generated search n -gram string, and then finds whether or not there is the search character string in the text data, on the basis of the read-out position information; a match-mode determiner that reads out, from the index storage, each piece of the position information associated with two n -gram character string patterns each including the delimiter added before or after the search character string among the generated search n -gram string, and determines a match mode of the search character string and the word included in the text data by judging if the two positions each indicated by the pieces of read-out position information are adjacent to the position of the n-gram character string patterns associated with the search character string found by the search target finder; and an outputter that outputs multiple pieces of text data judged to include the search character string, according to a priority determined on the basis of the determined match mode; wherein the outputter determines the priority based on the determined match mode by a calculation method based on multiple categories, the multiple categories (CC, CE, CX) being included in the text data. an index storage that stores index information about multiple pieces of text data including a word with delimiters added before and after the word, the index information associating n -gram character string patterns with position information indicating positions in which the n -gram character string patterns appear in the text data; an acquirer that acquires a search character string; a search n -gram generator that generates a search n -gram string by adding delimiters before and after the acquired search character string and then extracting a plurality of n -gram character string patterns from the delimited search character string; a search-target finder that reads out, from the index storage, the position information associated with n -gram character string patterns that are not including the delimiter among the generated search n -gram string, and then finds whether or not there is the search character string in the text data, on the basis of the read-out position information; a match-mode determiner that reads out, from the index storage, each piece of the position information associated with two n -gram character string patterns each including the delimiter added before or after the search character string among the generated search n -gram string, and determines a match mode of the search character string and the word included in the text data by judging if the two positions each indicated by the pieces of read-out position information are adjacent to the position of the n-gram character string patterns associated with the search character string found by the search target finder; and an outputter that outputs multiple pieces of text data judged to include the search character string, according to a priority determined on the basis of the determined match mode; wherein the outputter determines the priority based on the determined match mode by a calculation method based on multiple categories, the multiple categories (CC, CE, CX) being included in the text data.