有一项任务,可以在该站点找到一定的优势。如何用JAVA完成?
更具体地说,要求使用以下类型的钢材-g X120Mn12 / 1.3401,直径:130mm,数量:500 kg,此位置位于以下地址-{{3} }质量/特殊-quality / 1.3401-a128-x120mn12。
这是给您的变量列表。分数最高,最能回应客户的要求。
任务是,对于结构不同的不同站点,搜索应或多或少具有普遍性。我创建具有PDF的站点的类似任务,如下所示,借助txt中的pdfbox解析PDF文件,然后查找与输入参数(在不同站点的金属特征(..不同的产品?)不同)。
也就是说,我搜索String []和PDF文件的链接,结果为List c变量的形式,该变量包含与传递的数组String的构造中的匹配项数[]得分最高的字符串分别最能响应客户请求。像html页面这样的人可以提供建议,并且使用html链接到特定页面将不起作用,您只能提供指向主机(站点地址)的链接,因为站点的结构可以不同。预先谢谢你!
这是我的PDF搜索器代码:
public class PdfParserService {
private String path;
private static final String pathToResource = "..\\websitestillparser\\src\\main\\resources\\";
private static String pdfFileName;
private static String txtFileName;
private static String host;
@Autowired
private PdfParser parser;
public List<ResultLine> getResult(RequestFoPdfArguments argument) {
this.setPathForFile(argument.getPathForLink());
this.setPdfFileName(argument.getPathForLink());
this.setTxtFileName(argument.getPathForLink());
if (parser.downloadFileFRomUrl(argument.getPathForLink(), path, pdfFileName)) {
parser.generateTxtFromPDF(path + txtFileName, path + pdfFileName);
}
List<ResultLine> result = parser.setListWithSearchWords(host, path + txtFileName, argument.getArgs());
result = result.stream().filter(s -> s.getCountEquals() > 1).collect(Collectors.toList());
result.forEach(System.out::println);
return result;
}
public String setPathForFile(String url) {
try {
URL partOfurl = new URL(url);
if (!Files.exists(Paths.get(pathToResource + partOfurl.getHost()))) {
Files.createDirectories(Paths.get(pathToResource + partOfurl.getHost()));
}
path = pathToResource + partOfurl.getHost() + "\\";
} catch (IOException e) {
log.error(e.getMessage());
e.printStackTrace();
}
return path;
}
public String setPdfFileName(String url) {
try {
URL partOfurl = new URL(url);
pdfFileName = FilenameUtils.getName(partOfurl.getPath());
host = partOfurl.getHost();
} catch (IOException e) {
log.error(e.getMessage());
e.printStackTrace();
}
return pdfFileName;
}
public String setTxtFileName(String url) {
try {
URL partOfurl = new URL(url);
txtFileName = FilenameUtils.getName(partOfurl.getPath());
txtFileName = txtFileName.replace("pdf", "txt");
} catch (IOException e) {
log.error(e.getMessage());
e.printStackTrace();
}
return txtFileName;
}
}