Shingle 필터로 생성 된 토큰이 쿼리에 포함되지 않음-Lucene

Hariii
public class CustomAnalyzer extends Analyzer {
    public static final int DEFAULT_MAX_TOKEN_LENGTH = 255;
    private int maxTokenLength = DEFAULT_MAX_TOKEN_LENGTH;

    @Override
    protected Analyzer.TokenStreamComponents createComponents(final String fieldName,final Reader reader) {
        final ClassicTokenizer src = new ClassicTokenizer(getVersion(), reader);
        src.setMaxTokenLength(maxTokenLength);
        TokenStream  tok = new ShingleFilter(src,2,3);
        tok = new ClassicFilter(tok);
        tok = new LowerCaseFilter(tok);
    //    tok = new SynonymFilter(tok,SynonymDictionary.getSynonymMap(),true);
        return new Analyzer.TokenStreamComponents(src, tok) {
            @Override
            protected void setReader(final Reader reader) throws IOException {
                src.setMaxTokenLength(CustomAnalyzer.this.maxTokenLength);
                super.setReader(reader);
            }
        };
    }
}


public class Test {
    public static void main(String[] args) throws Exception {
        Directory dir = new NIOFSDirectory(new File("/home/local/test"));
        IndexReader indexReader = DirectoryReader.open(dir);
        IndexSearcher indexSearcher = new IndexSearcher(indexReader);
        CustomAnalyzer analyzer1 = new CustomAnalyzer();
        TokenStream ts=new CustomSynonymAnalyzer().tokenStream("n",new StringReader("cup board"));
        ts.reset();
        System.out.println("Tokens are :");
        while (ts.incrementToken()) {
           System.out.print(ts.getAttribute(CharTermAttribute.class) + ", ");
        }
        QueryParser parser = new QueryParser("n", analyzer1);
        Query query = null;
        query = parser.parse("cup board");
        System.out.println("\nQuery is");
        System.out.println(query.toString());
    }
}

Lucene 4.10.4를 사용하고 있습니다. 위 코드의 출력은 다음과 같습니다.

Tokens are :
cup, cup board, board 
Query is
n:cup n:board

결과 쿼리는 n : cup n : board n : cup board 가 될 것으로 예상합니다 . 그러나 shingle 필터에 의해 형성된 토큰 은 쿼리에 추가되지 않습니다. n : cup n : board 만 얻 습니다 . 내 실수는 어디에 있습니까?

펨토 Rgon

이러한 토큰은 분석기에 의해 분할되지 않고 QueryParser 구문에 의해 분할됩니다. 절은 공백으로 구분되므로 별도의 용어가 아니라 별도의 쿼리 절 입니다.

차이점을 확인하려면 구문 쿼리를 시도하십시오. parser.parse("\"cup board\"");

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

범위에 포함되지 않음 : 데이터 생성자`Movement '

분류에서Dev

XCode 7.3에서 빌드 된 앱용 iOS 10에서 디바이스 토큰이 생성되지 않음

분류에서Dev

부모로부터의 Hibernate 업데이트 자식, 생성 된 SQL 쿼리 조건에 결합 된 컬럼이 지정되지 않음

분류에서Dev

번들링 쿼리 토큰이 생성되지 않습니다.

분류에서Dev

XSD에서 생성 된 클래스에 대한 역 직렬화에 모든 데이터가 포함되지 않음

분류에서Dev

색인이 생성 된 일부 필드와 그렇지 않은 일부 필드를 포함하는 MongoDB 쿼리

분류에서Dev

RX.Js 5.0.0이 포함 된 JSBIN 프로젝트에서 '정의되지 않음'오류 발생

분류에서Dev

MS Access SQL 쿼리에 집계 함수로 지정된 표현식이 포함되어 있지 않습니다.

분류에서Dev

CMake 생성 Makefile에 대상이 포함되지 않음

분류에서Dev

C #에서 생성 된 JWT 토큰이 Javascript와 일치하지 않습니다.

분류에서Dev

Android 주석 앱에는 생성 된 활동이 포함되지 않습니다.

분류에서Dev

스트라이프 토큰-데이터 양이 토큰에 포함되지 않는 이유

분류에서Dev

Bearer 토큰이 SwaggerUI에 포함되지 않음

분류에서Dev

Bearer 토큰이 SwaggerUI에 포함되지 않음

분류에서Dev

lucene 쿼리 필터가 작동하지 않음

분류에서Dev

내 Oracle 날짜 필드가 쿼리 된 범위에 포함되지 않는 이유는 무엇입니까?

분류에서Dev

Java Regex-문자열에 마침표 (.)로 구분 된 비어 있지 않은 트림 된 토큰이 포함되어 있는지 확인

분류에서Dev

웹 응용 프로그램에 포함 된 소리가 IIS에서 재생되지 않음

분류에서Dev

sudo mkdir은 마운트 된 디렉토리에 nobody nogroup으로 디렉토리를 생성 한 다음 chown이 허용되지 않습니다.

분류에서Dev

텍스트에 #, @ 같은 특수 문자가 포함 된 경우 사용자 지정 토크 나이저가 예상대로 토큰을 생성하지 않습니다.

분류에서Dev

큰 따옴표를 사용하여 생성 된 문자열이 문자열 풀에서 생성되지 않음

분류에서Dev

Angular Firebase 오류 ---- 잘못된 데이터로 DocumentReference.set () 함수가 호출되었습니다. 지원되지 않는 필드 값 : 정의되지 않음 (성 필드에 있음)

분류에서Dev

Elasticsearch에서 문서의 데이터 필드에 shingle 토큰을 저장하는 방법은 무엇입니까?

분류에서Dev

image_dataset_from_directory 함수에서 생성 된 데이터 세트에는 배치 크기가 포함되지 않습니다.

분류에서Dev

drf-mongoengine DynamicDocumentSerializer에 포함 된 필드가 포함되지 않음

분류에서Dev

요소 트리 구문 오류 (잘못된 토큰으로 올바르게 구성되지 않음)

분류에서Dev

함수를 호출 할 때 CSRF 토큰이 제대로 처리되지 않음

분류에서Dev

Spring Boot 웹 애플리케이션에 포함 된 Tomcat이 module-info로 시작되지 않음

분류에서Dev

생성 시간 및 날짜가 지금보다 큰 위치로 필터링 된 Firebase 쿼리

Related 관련 기사

  1. 1

    범위에 포함되지 않음 : 데이터 생성자`Movement '

  2. 2

    XCode 7.3에서 빌드 된 앱용 iOS 10에서 디바이스 토큰이 생성되지 않음

  3. 3

    부모로부터의 Hibernate 업데이트 자식, 생성 된 SQL 쿼리 조건에 결합 된 컬럼이 지정되지 않음

  4. 4

    번들링 쿼리 토큰이 생성되지 않습니다.

  5. 5

    XSD에서 생성 된 클래스에 대한 역 직렬화에 모든 데이터가 포함되지 않음

  6. 6

    색인이 생성 된 일부 필드와 그렇지 않은 일부 필드를 포함하는 MongoDB 쿼리

  7. 7

    RX.Js 5.0.0이 포함 된 JSBIN 프로젝트에서 '정의되지 않음'오류 발생

  8. 8

    MS Access SQL 쿼리에 집계 함수로 지정된 표현식이 포함되어 있지 않습니다.

  9. 9

    CMake 생성 Makefile에 대상이 포함되지 않음

  10. 10

    C #에서 생성 된 JWT 토큰이 Javascript와 일치하지 않습니다.

  11. 11

    Android 주석 앱에는 생성 된 활동이 포함되지 않습니다.

  12. 12

    스트라이프 토큰-데이터 양이 토큰에 포함되지 않는 이유

  13. 13

    Bearer 토큰이 SwaggerUI에 포함되지 않음

  14. 14

    Bearer 토큰이 SwaggerUI에 포함되지 않음

  15. 15

    lucene 쿼리 필터가 작동하지 않음

  16. 16

    내 Oracle 날짜 필드가 쿼리 된 범위에 포함되지 않는 이유는 무엇입니까?

  17. 17

    Java Regex-문자열에 마침표 (.)로 구분 된 비어 있지 않은 트림 된 토큰이 포함되어 있는지 확인

  18. 18

    웹 응용 프로그램에 포함 된 소리가 IIS에서 재생되지 않음

  19. 19

    sudo mkdir은 마운트 된 디렉토리에 nobody nogroup으로 디렉토리를 생성 한 다음 chown이 허용되지 않습니다.

  20. 20

    텍스트에 #, @ 같은 특수 문자가 포함 된 경우 사용자 지정 토크 나이저가 예상대로 토큰을 생성하지 않습니다.

  21. 21

    큰 따옴표를 사용하여 생성 된 문자열이 문자열 풀에서 생성되지 않음

  22. 22

    Angular Firebase 오류 ---- 잘못된 데이터로 DocumentReference.set () 함수가 호출되었습니다. 지원되지 않는 필드 값 : 정의되지 않음 (성 필드에 있음)

  23. 23

    Elasticsearch에서 문서의 데이터 필드에 shingle 토큰을 저장하는 방법은 무엇입니까?

  24. 24

    image_dataset_from_directory 함수에서 생성 된 데이터 세트에는 배치 크기가 포함되지 않습니다.

  25. 25

    drf-mongoengine DynamicDocumentSerializer에 포함 된 필드가 포함되지 않음

  26. 26

    요소 트리 구문 오류 (잘못된 토큰으로 올바르게 구성되지 않음)

  27. 27

    함수를 호출 할 때 CSRF 토큰이 제대로 처리되지 않음

  28. 28

    Spring Boot 웹 애플리케이션에 포함 된 Tomcat이 module-info로 시작되지 않음

  29. 29

    생성 시간 및 날짜가 지금보다 큰 위치로 필터링 된 Firebase 쿼리

뜨겁다태그

보관