Używam solr z rubinem na szynach. To wszystko działa dobrze, po prostu muszę wiedzieć, czy istnieje jakiś istniejący kod do sanityzacji danych wprowadzanych przez użytkownika, na przykład zapytanie zaczynające się od? lub *Solit oczyszczające zapytanie
5
A
Odpowiedz
7
Nie znam żadnego kodu, który to robi, ale teoretycznie można to zrobić, patrząc na parsing code in Lucene i szukając throw new ParseException
(tylko 16 meczów!).
W praktyce uważam, że lepiej jest po prostu uchwycić wyjątki od Solr w kodzie i wyświetlić komunikat "nieprawidłowe zapytanie" lub coś w tym stylu.
EDIT: Oto kilka "odkażających":
3
Solr Security i strony wiki Solr Query Syntax mogą być istotne.
1
Jeśli używasz Solarium z PHP, możesz użyć metody Solarium_Escape::term()
.
/**
* Escape a term
*
* A term is a single word.
* All characters that have a special meaning in a Solr query are escaped.
*
* If you want to use the input as a phrase please use the {@link phrase()}
* method, because a phrase requires much less escaping.\
*
* @link http://lucene.apache.org/java/docs/queryparsersyntax.html#Escaping%20Special%20Characters
*
* @param string $input
* @return string
*/
static public function term($input)
{
$pattern = '/(\+|-|&&|\|\||!|\(|\)|\{|}|\[|]|\^|"|~|\*|\?|:|\\\)/';
return preg_replace($pattern, '\\\$1', $input);
}
Powiązane problemy
- 1. Zapytanie z zagnieżdżonymi mangustami zapytanie
- 2. Zapytanie Solr (q) lub zapytanie filtrujące (fq)
- 3. Zapytanie TreeNodeCollection
- 4. Skomplikowane zapytanie
- 5. BackgroundTransferService/Zapytanie
- 6. Jak mogę przekonwertować to zapytanie SQL na zapytanie MS Access?
- 7. Zapytanie ActiveRecord jest znacznie wolniejsze niż proste zapytanie SQL?
- 8. Android SQLite: które zapytanie ("zapytanie" lub "rawQuery") jest szybsze?
- 9. Jak mogę przekonwertować zapytanie Freebase na zapytanie Wikidata?
- 10. Wydajność podobnego zapytania "% Zapytanie%" a wyszukiwanie pełnotekstowe ZAWIERA zapytanie
- 11. MongoDB kruszywo zapytanie/grupy/suma tłumaczona na pymongo zapytanie
- 12. Zapytanie z NHibernate
- 13. Doktryna wykorzystanie pamięci zapytanie
- 14. Usuń zapytanie w Linq
- 15. Zapytanie słownik słowników?
- 16. zapytanie sql w górę
- 17. Tricky zapytanie SQL
- 18. Zapytanie PHP Regex
- 19. Cofnij zapytanie neo4j wolne
- 20. WMI NET Nieprawidłowe zapytanie
- 21. Zapytanie dotyczące konfiguracji Apache
- 22. Spark: Zapytanie FlatMapValues
- 23. Zapytanie dotyczące obiektu ParseObject
- 24. Zapytanie SPARQL DESCRIBE query
- 25. Zapytanie SQL wewnątrz funkcji
- 26. Prolog "lub" operator, zapytanie
- 27. MongoDB: zapytanie o @DBRef
- 28. CakePHP znaleźć zapytanie korzystając%%
- 29. Zapytanie DSL - Nieporozumienie filtrów
- 30. Django ForeignKey zawiera zapytanie