C\#열 을 뿌 려 키워드 필 터 를 실현 하 는 실례
"검색 을 실행 하기 전에 텍스트 내용 을 미리 처리 할 수 있다 고 가정 하면 문서 에 있 는 모든 단어 에 색인 을 만 들 고 단어 가 나 올 때마다 링크 를 저장 할 수 있 습 니 다.이러한 역방향 색인 은 프로그램 이 주어진 단 어 를 빨리 찾 을 수 있 습 니 다.단 어 를 찾기 위해 서 는..."우 리 는 그 안에 포 함 된 모든 단어의 링크 를 교차 시 킬 수 있 지만 실현 하기 가 비교적 복잡 하고 속도 가 느 릴 수 있다."하지만 일부 웹 검색엔진 은 이런 방법 을 사용한다)"
생각 이 이렇게 간단 하 니,내 가 믿 을 게!어떤 검색엔진 도 이런 생각 을 쓴다.이러한 해시 방식 으로 키 워드 를 처리 하 는 것 은 확실히 매우 빠 릅 니 다.10000 개의 글 자 를 하나의 해시 목록 으로 구성 하 는 것 도 몇 밀리초 입 니 다.미리 분 배 된 메모리 가 비교적 좋 으 면 기본적으로 아무런 조작 도 하지 않 고 메모리 에 데 이 터 를 채 우 는 것 입 니 다.뿌리 기 목록 에서 키 가 존재 하 는 지 여 부 를 판단 하 는 시간 복잡 도 는 O(1)이 며,사실 스스로 Dictionary
실현 의 사고방식 은 비교적 간단 하 다.
1:키 워드 를 처리 하고 키워드 사전 표를 생 성 합 니 다.
2:필터 할 텍스트 를 처리 하고 사전 표를 생 성 합 니 다.
3:텍스트,두 사전 표 세 가 지 를 비교 합 니 다.
다음 글 을 테스트 해 보 겠 습 니 다.
"클 라 우 드 블 로 그 를 보면 12306 병발 문 제 를 해결 하 는 시사 점 을 볼 수 있 습 니 다.저 는 지금 준 카드 인 터 페 이 스 를 만 들 고 있 습 니 다.병발 문제 가 발생 할 수 있 습 니 다.바로 주문 이 우리 의 인터페이스 에 여러 가지 요 구 를 보 낼 수 있 습 니 다.제 가 지금 하 는 방법 은 데이터 베이스 에 대응 하 는 표 에 가서 주문 이 존재 하 는 지 확인 하 는 것 입 니 다.만약 에 존재 한다 면 제시 하 세 요.만약 에 절차 에 따라그러나 이 모든 주문 서 는 데이터 베 이 스 를 찾 아야 합 니 다.만약 에 제 가 메모리 에서 주문 집합 을 유지 하면 주문 에 존재 하 는 지 판단 하 는 문 제 를 빨리 해결 할 수 있 습 니 다.관성 사고 가 너무 심각 해서 모든 것 을 데이터 베 이 스 를 찾 아야 합 니 다.이런 성능 이 가장 나 쁜 것 입 니 다.사실은 많은 문 제 는 메모리 에서 해결 할 수 있 습 니 다.최근 에 특별한 느낌 이 있 습 니 다.우물 안 개구리 가 되 지 말고 소인 의 것 을 많이 보고 코드 를 쓰 는 것 보다 수확 이 정말 빨리 늘 었 습 니 다.사실 제 가 쓴 프로그램 이 성능 이 떨 어 지고 효율 이 낮은 경우 가 많 습 니 다.모두 방법 때 문 입 니 다.좋 은 방법 을 찾 지 못 했 고 반 짝 이 는 느낌 없 이 최 악의 방법 으로 문 제 를 해 결 했 습 니 다."
테스트 코드:
출력 결과 캡 처:
또한 간단 하고 실 용적 인 코드 운행 시간 테스트 류 를 보 내 드 립 니 다.특정한 코드 의 운행 시간 을 테스트 하 는 것 이 편리 합 니 다.
4.567913.사열 을 실현 하 는 부분 핵심 코드:
4.567913.저도 모든 코드 를 붙 이 고 싶 지만 BUG 도 있 습 니 다.기능 이 보완 되 어야 합 니 다.보완 되면 소스 코드 가 붙 을 것 입 니 다.한 장의 그림 을 캡 처 해서 보 여 드 리 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Java 키워드this(동력 노드 Java 학원 정리)Leaf 클래스의main 방법에서, 우리는new에서 Leaf 실례 x를 하나 만들었고, 그 다음에 x 실례 호출 increment() 방법을 사용했다.만약 increment () 가 일반적인 방법이나void 방법이라...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.