인덱스 파일이 FSdirectory로 하드 디스크에 있는데 크기는 약 2GB입니다. 더 나은 검색 속도를 얻기 위해 RAM에로드하고 싶습니다. 뒤에 코드를 사용합니다 :Lucene에서 FSdirectory 인덱스 파일을 RAMdirectory로로드하는 방법은 무엇입니까?
Directory dic=new RAMDirectory(FSDirectory.open(new File("file path")), IOContext.DEFAULT);
하지만 작동 여부는 확실하지 않습니다. 그것은 작동 여부를 아는 사람 있습니까? 이보다 나은 다른 방법은 없을까요?
나는 어떤 제안이라도 기뻐할 것입니다. 감사합니다.
직접적으로 로딩하는 것이 더 좋습니다 (RAMDir을 사용하지 마십시오). os 파일 캐시는 mem에 인덱스를로드합니다. 이에 따라 jvm Xmx를 설치하는 것을 잊지 마십시오. os에 최소한 2G의 여유 공간을 두십시오. (예 : 4G 시스템에서 Xmx2G 사용). – nomoa
@nomoa 직접로드하는 것이 무엇을 의미하는지 이해하지 못했습니다. 그것을하는 방법? 바람둥이가 운영하는 웹 응용 프로그램에서 사용하고 싶습니다. – anony
RAMDirectory를 사용하면 검색 속도가 향상되지 않는다는 것을 의미하는 java 문서를 살펴보십시오. 경고 :이 클래스는 거대한 인덱스에서 작동하지 않습니다. jvm params와 os params (Linux에서 swappiness)를 조정하면 검색 속도가 향상됩니다. lucene perf FAQ를 보셔야합니다. – nomoa