2015-01-03 2 views
0

Solr의 첫날은 항목으로 josn 문서 시스템을 허용하는 것 같습니다. 나는 평범한 텍스트 파일 (26meg)을 가지고 있고 첫 단계에서는 정규식을 사용하여 전체 텍스트 검색을하고 싶다. 검색을 시작할 수 있도록 색인에이 간단한 26M 파일을 가져 오는 좋은 단계를 찾을 수 없습니다.apache solr 및 간단한 텍스트 파일 (csv 아님) 검색

답변

0

임의의 JSON 파일을 색인화 할 수 없습니다. 실제로 Solr이 기대하는 방식으로 형식을 지정해야하며 실제로는 색인을 생성 할 문서 목록으로 구성됩니다.

[ 
{"id" : "TestDoc1", "title" : "test1"}, 
{"id" : "TestDoc2", "title" : "another test"} 
] 

The JSON Update Format을 참조하십시오. 이 형식은 schema.xml에도 반영되어 JSON 문서 구조에있는 각 필드의 정의를 추가해야합니다 (적절한 유형/분석기/필터/토큰 화 프로그램이 설정되어 있어야합니다).

+0

방금 ​​텍스트 파일을 가지고 있습니다. 그 파일은 csv가 아니며 읽을 수있는 텍스트가 많습니다. 크기는 50MB입니다. – thevikas

+0

그러면 Solr이 이해할 수있는 JSON 형식으로 파일을 처리해야합니다. – MatsLindh

+0

사실, 최신 Solr은 더 임의의 JSON 파일을 Solr에 더 잘 매핑하는 방법에 대한 지침을 지원합니다. [/update/json/documents](https://cwiki.apache.org/confluence/display/solr/Uploading+Data+with+Index+Handlers#UploadingDatawithIndexHandlers-TransformingandIndexingcustomJSONdata) 처리기를 참조하십시오. –

1

Solr은 정규 표현식 검색을 위해 설계되지 않았습니다. 이 기능은 많은 기능을 갖춘 키워드 검색을 위해 설계되었습니다. Google에서 정규식으로 검색하지 않는 것과 비슷합니다.

더 큰 문제는 파일을 반복적으로 언급한다는 것입니다. Solr은 많은 문서을 인덱싱 한 다음 쿼리와 일치하는 문서를 반환하도록 설계되었습니다.

개의 파일에있는 내용은 무엇입니까? 문서가 하나뿐이라면 인덱싱 및 검색의 요점은 무엇입니까? 역으로 생각하는 것이 더 쉽습니다. 키워드로 검색 할 때 무엇을 되 찾을 수 있습니까? X의 N 항목이어야합니다. 따라서 X는 일반적으로 Solr의 단위/문서이므로 파일 매핑 방법을 결정해야합니다.

별도의 질문이어야합니다.

+0

지금 아이디어 받기. 감사. 내가 "A B C"를 검색하면 얼마나 많은 시간에 결과가 나오는지, 얼마나 가까이에 있는지, 동일한 문장, 이웃 문장 등을 기준으로 정렬되어 결과를 얻으려고합니다. 그래서 자연 언어이므로 정확하게 일치하지 않습니다. 그게 내 문제는, 내가 한 번에 하나의 파일에 작업해야합니다. 스핑크스가 이것에 더 낫다고 생각하니? – thevikas

+0

내가 아는 모든 검색 엔진은 동일한 기본 원칙을 기반으로합니다. 따라서 유스 케이스를 더 개발해야합니다. "일치/문서"가 어떤 모양인지 아직 정의하지 않았습니다. 그것은 문장처럼 들렸지 만, 당신은 교차 문장에도 매치하고 싶을 것 같습니다. 귀하의 콘텐츠가 non-chunkable 경우 어쩌면 검색 엔진은 당신에게 맞는 접근 방식이 아니며 NLP 도메인에서 더 많은 n 그램과 Finite State Machine을 찾고 있습니다. 귀하의 요구 사항을 염두에두고 검색 엔진 자습서를하는 것이 좋습니다. –

0

첫 번째 아이디어는 다음과 같습니다. 어떻게 대답을 보여야합니까?

@AlexandreRafalovitch가 쓴대로 SOLr은 검색 용어가있는 문서를 반환하도록 설계되었습니다. SOLR은 물음표를 검색하거나 regexp를 사용하여 문서를 분석 할 수 있습니다.

하지만 단 한 단어에서 한 단어를 검색하면 SOLR이 결과로 유일한 파일을 반환합니다.

필자는 많은 통찰력 (1GByte + 파일)을 통찰력으로 검색해야하는 동일한 상황을 경험했습니다. 내 큰 해결책은 큰 문서를 작은 문서로 분할하는 것입니다.

큰 이익이있었습니다. 응용 프로그램은 검색 용어가 다시 시작되는 페이지를 지적 할 수있었습니다.

그래서 귀하의 경우 텍스트 파일을 각 행을 문서로 처리하여 줄로 나눌 수 있습니다. 따라서 용어가 존재하는 경우 문서를 검색하여 정보를 반환 할 수 있습니다.

그건 그렇고 : SOLR이 당신의 필요에 비해 약간 큰 것이 아니라면, 요점에 대해 생각해 봐야합니다. 여물통을 검색 할 문서가 하나뿐이라면 파일을 정규 표현식 해석기 (시스템 콘솔 또는 원하는 프로그래밍 언어로)로로드하는 것이 가장 쉬운 방법입니다.