在使用lucene时,怎么设置搜索方式让输入短语(如管理信息系统),输出结果中必须带有管理,信息和系统

在使用lucene时,怎么设置搜索方式让输入短语(如管理信息系统),输出结果中必须带有管理,信息和系统?

 public ScoreDoc[] SearchIndex(String searchplace, String searchkey) throws Exception {
        Directory directory = FSDirectory.open(new File("F:\\temp\\index"));
        IndexReader indexReader = DirectoryReader.open(directory);
        IndexSearcher indexSearcher = new IndexSearcher(indexReader);
        IKAnalyzer analyzer = new IKAnalyzer();
        QueryParser parser = new QueryParser(searchplace, analyzer);
        Query query = parser.parse(searchkey);
        TopDocs topDocs = indexSearcher.search(query, 100);
        ScoreDoc[] scoreDocs = topDocs.scoreDocs;
        System.out.println("共有 " + topDocs.totalHits + " 条匹配的结果");
        System.out.println("共有 " + scoreDocs.length + " 条匹配的结果");
        System.out.println("-----------------------------------------------------------------");
        for (ScoreDoc scoreDoc : scoreDocs) {
            int doc = scoreDoc.doc;
            Document document = indexSearcher.doc(doc);
            // 文件名称
            String fileName = document.get("fileName");
            System.out.println(fileName);
            // 文件内容
            String fileContent = document.get("fileContent");
            System.out.println(fileContent);
            // 文件大小
            String fileSize = document.get("fileSize");
            System.out.println(fileSize);
            // 文件路径
            String filePath = document.get("filePath");
            System.out.println(filePath);
            System.out.println("-----------------------------------------------------------------");
        }
        indexReader.close();
        return scoreDocs;
    }

我这么写的代码,假如搜索词是管理信息系统,输出结果会是带有管理、信息或者系统的文件,怎么把或者改成都要出现?

1个回答

IKAnalyzer 添加自定义词,
添加自定义查询表达式,
例如:用Term fileName:[信息 系统]

Query query = parser.parse(searchkey);

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!