Jak włączyć wynik podczas wyszukiwania za pomocą lucene.net?Jak włączyć wynik podczas wyszukiwania za pomocą lucene.net?
Odpowiedz
Aby to zrobić, musisz napisać własną klasę analizatora. Jest to stosunkowo proste. Oto ten, którego używam. Łączy w sobie zatrzymywanie filtrowania słów. Porter i (to może być za dużo dla twoich potrzeb) usuwanie akcentów z postaci.
/// <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)));
}
}
Dzięki, spróbuję tego. – devson
+1 dzięki Jack, właśnie tego szukałem. Gdybym mógł, uznałbym to za odpowiedź! – andy
Użyłem twojego przykładu, jednak nie otrzymuję wyników dla zapytań dla numeru '4656' (działa standardowy analizator) Zastąpiłem słowa stopu wbudowanym' StopAnalyzer.ENGLISH_STOP_WORDS' które nie zawiera liczb, żadnych pomysłów co się dzieje tam? – Myster
Można użyć Snowball lub PorterStemFilter. Zobacz przewodnik Java Analyzer documentation w celu połączenia różnych filtrów/tokenizerów/analizatorów. Zauważ, że musisz użyć tego samego analizatora do indeksowania i pobierania, tak że obsługa zdań powinna zaczynać się od czasu indeksowania.
Dzięki, spróbuję tego. – devson
- 1. Dokładna fraza wyszukiwania używając Lucene.net
- 2. Lucene.net - Awarie podczas indeksowania
- 3. Jak włączyć wcięcie podczas pisania JSON za pomocą Json.net?
- 4. Wynik wyszukiwania nie wyświetla
- 5. Jak indeksować i znajdować numery za pomocą Lucene.NET?
- 6. Jak włączyć przycisk za pomocą metody CanExecute?
- 7. Lucene.Net: Jak mogę dodać filtr daty do moich wyników wyszukiwania?
- 8. Jak daleko za oryginałem znajduje się Lucene.Net?
- 9. Jak włączyć podświetlanie wyszukiwania ze skryptu vim?
- 10. Intellij: Wynik z konsoli wyszukiwania
- 11. Znajdź dokładne dopasowanie za pomocą wyszukiwania pełnotekstowego.
- 12. Sortowanie za pomocą wyszukiwania pełnotekstowego MongoDB
- 13. Opcje klastrowania Lucene.NET?
- 14. Nieprawidłowy wynik zwrócony z usługi wyszukiwania oprogramowania.
- 15. Jak włączyć serwery proxy za pomocą pytka anaconda?
- 16. niezdefiniowany wynik za pomocą prototypowego [JavaScript]
- 17. Jak zwiększyć alexa wyników wyszukiwania za pomocą Alexa api
- 18. Budowanie prostego wyszukiwania obrazów za pomocą TensorFlow
- 19. Android: Zarządzaj kontaktami za pomocą klucza wyszukiwania
- 20. Lucene.NET "LUB"
- 21. Wdrażanie wyszukiwania pełnotekstowego za pomocą zapytania Tridion
- 22. Filtrowanie wyszukiwania za pomocą PHP/MySQL
- 23. Jak włączyć rejestrowanie adresu IP za pomocą Log4Net
- 24. Jak włączyć grupę radiową za pomocą pola wyboru?
- 25. Jak wyłączyć i ponownie włączyć przycisk za pomocą javascript?
- 26. Jak włączyć wklejanie w polu tekstowym za pomocą Ctrl + v
- 27. Jak włączyć sesję za pomocą SSL wsHttpBinding w WCF
- 28. Jak wyłączyć i włączyć port USB za pomocą wiersza polecenia?
- 29. Jak pokazać/ukryć/włączyć element za pomocą ExtJS?
- 30. Jak włączyć lub wyłączyć przycisk za pomocą knockout.js
Z jakiego analizatora korzystasz? – Kane
Używam analizatora standardowego. – devson