lucene.net을 사용하여 검색 할 때 형태소 분석을 사용하는 방법은 무엇입니까?lucene.net을 사용하여 검색 할 때 형태소 분석을 사용하는 방법은 무엇입니까?
15
A
답변
20
이렇게하려면 자신의 분석기 클래스를 작성해야합니다. 이것은 비교적 간단합니다. 여기 제가 사용하고있는 것이 있습니다. 그것은 정지 단어 필터링을 결합합니다. 포터가 줄기를 긋고 (이것은 사용자의 요구에 너무 많이 맞을 수 있습니다.) 문자에서 악센트를 제거합니다.
/// <summary>
/// An analyzer that implements a number of filters. Including porter stemming,
/// Diacritic stripping, and stop word filtering.
/// </summary>
public class CustomAnalyzer : Analyzer
{
/// <summary>
/// A rather short list of stop words that is fine for basic search use.
/// </summary>
private static readonly string[] stopWords = new[]
{
"0", "1", "2", "3", "4", "5", "6", "7", "8",
"9", "000", "$", "£",
"about", "after", "all", "also", "an", "and",
"another", "any", "are", "as", "at", "be",
"because", "been", "before", "being", "between",
"both", "but", "by", "came", "can", "come",
"could", "did", "do", "does", "each", "else",
"for", "from", "get", "got", "has", "had",
"he", "have", "her", "here", "him", "himself",
"his", "how","if", "in", "into", "is", "it",
"its", "just", "like", "make", "many", "me",
"might", "more", "most", "much", "must", "my",
"never", "now", "of", "on", "only", "or",
"other", "our", "out", "over", "re", "said",
"same", "see", "should", "since", "so", "some",
"still", "such", "take", "than", "that", "the",
"their", "them", "then", "there", "these",
"they", "this", "those", "through", "to", "too",
"under", "up", "use", "very", "want", "was",
"way", "we", "well", "were", "what", "when",
"where", "which", "while", "who", "will",
"with", "would", "you", "your",
"a", "b", "c", "d", "e", "f", "g", "h", "i",
"j", "k", "l", "m", "n", "o", "p", "q", "r",
"s", "t", "u", "v", "w", "x", "y", "z"
};
private Hashtable stopTable;
/// <summary>
/// Creates an analyzer with the default stop word list.
/// </summary>
public CustomAnalyzer() : this(stopWords) {}
/// <summary>
/// Creates an analyzer with the passed in stop words list.
/// </summary>
public CustomAnalyzer(string[] stopWords)
{
stopTable = StopFilter.MakeStopSet(stopWords);
}
public override TokenStream TokenStream(string fieldName, System.IO.TextReader reader)
{
return new PorterStemFilter(new ISOLatin1AccentFilter(new StopFilter(new LowerCaseTokenizer(reader), stopWords)));
}
}
7
Snowball 또는 PorterStemFilter을 사용할 수 있습니다. Java Analyzer documentation을 다른 필터/토큰 라이저/분석기를 결합하는 가이드로 참조하십시오. 인덱싱 및 검색에 동일한 분석기를 사용해야하므로 인덱싱시 처리 형태가 시작되어야합니다.
+0
고마워, 나는 이것을 시도 할 것이다. – devson
관련 문제
- 1. Solr에서 형태소 분석을 구성하는 방법은 무엇입니까?
- 2. 형태소 분석을 사용할 때 루트 단어를 검색하면 아무런 의미가 없습니다.
- 3. Lucene.Net을 사용하여 다른 검색 결과를 사용하여 검색
- 4. schema.xml 파일에 형태소 분석을 추가 할 수 없습니다.
- 5. Lucene.net을 사용하여 페이징
- 6. lucene.Net을 사용하여 전체 텍스트 검색 및 필터링을 결합하는 방법
- 7. Solr은 동의어와 형태소 분석을 사용할 때 사용 된 실제 최종 쿼리를 반환 할 수 있습니까?
- 8. iphone에서 구문 분석을 수행 할 때 탭바보기를 표시하는 방법은 무엇입니까?
- 9. lucene.net을 사용하여 폴더를 인덱싱하는 방법
- 10. 단수/복수 검색 및 형태소 분석
- 11. lucene.net을 사용하여 색인 만들기 2.9.2.2
- 12. 정서 분석을 시작하는 방법은 무엇입니까?
- 13. ASP.NET에서 위치 정보를 사용하여 검색 기능을 구현하는 방법은 무엇입니까?
- 14. VSTS2008 코드 분석을 구성하는 방법은 무엇입니까?
- 15. Lucene.Net을 사용하여 '시작'대신 '포함'검색 수행 방법
- 16. 직렬화와 문법 분석을 결합하는 방법은 무엇입니까?
- 17. lucene.net을 사용하여 solr 색인을 쿼리하는 방법
- 18. "top n"조회수 제한없이 Lucene.NET을 검색하는 방법은 무엇입니까?
- 19. 스핑크스를 폴란드어로 검색 하시겠습니까?
- 20. Lucene.Net을 사용하여 여러 단어 자동 제안
- 21. 최고의 "턴키"형태소 분석 알고리즘은 무엇입니까?
- 22. Lucene.Net을 사용하여 PDF 파일을 어떻게 색인화 할 수 있습니까?
- 23. "입력 할 때 검색"을 제공하는 가장 좋은 방법은 무엇입니까?
- 24. 배열에서 검색하는 방법은 무엇입니까? (배열을 검색 할 때 문제가 있습니다.)
- 25. Web.Config에서 검색 할 때 변수를 CONSTANT로 정의하는 방법은 무엇입니까?
- 26. 전자 메일 구문 분석을 설정하는 방법은 무엇입니까?
- 27. 응용 프로그램에서 검색 창을 사용하는 방법은 무엇입니까?
- 28. ASP.NET에서 사용할 검색 기술은 무엇입니까?
- 29. 자바에서 형태소 분석 라이브러리
- 30. 데이터 구조와 분석을 잘하는 방법은 무엇입니까?
어떤 분석기를 사용하고 있습니까? – Kane
표준 분석기를 사용하고 있습니다. – devson