diff --git a/app/modules/IndexComponent.java b/app/modules/IndexComponent.java index 65e42f7..6c8e1e1 100644 --- a/app/modules/IndexComponent.java +++ b/app/modules/IndexComponent.java @@ -266,6 +266,8 @@ public SearchResponse query(String q, String filter, int from, int size) { @Override public QueryStringQueryBuilder queryStringQuery(String q) { + // Clean up single forward slash, but keep regular /expressions/ + q = q.indexOf('/') == q.lastIndexOf('/') ? q.replace("/", " ") : q; return QueryBuilders.queryStringQuery(q).defaultOperator(Operator.AND); } } \ No newline at end of file diff --git a/test/modules/IndexQueryTest.java b/test/modules/IndexQueryTest.java index e76e504..2e5e02c 100644 --- a/test/modules/IndexQueryTest.java +++ b/test/modules/IndexQueryTest.java @@ -57,6 +57,12 @@ public void testBooleanSearch() { Assert.assertEquals(6, index.query("twain OR schriftsteller").getHits().getTotalHits()); } + @Test + public void testSlashInQuery() { + Assert.assertEquals(1, index.query("Hauptschule / Lehrer").getHits().getTotalHits()); + Assert.assertEquals(1, index.query("/[Hh]auptschulen?/").getHits().getTotalHits()); + } + @Test public void testContextQuery() { Assert.assertEquals(0, index.query("context.jsonld").getHits().getTotalHits());