Продолжая с моего раннего post, я изменил запрос, так как в соответствии с post от femtoRgon некоторые символы и анкеры не поддерживаются поиском упругой информации.образец соответствия в упругом поиске?
Я ищу способ сопоставить шаблон, например, «xxx-xx-xxxx», чтобы искать документы с номерами социального страхования, используя elastic search
.
Предположим, что в индексированных документах я хотел бы найти все те документы, которые имеют номера социального страхования, которые соответствуют шаблону «xxx-xx-xxxx».
Пример кода для индексирования документа:
InputStream is = null;
try {
is = new FileInputStream("/home/admin/Downloads/20121221.doc");
ContentHandler contenthandler = new BodyContentHandler();
Metadata metadata = new Metadata();
Parser parser = new AutoDetectParser();
parser.parse(is, contenthandler, metadata, new ParseContext());
}
catch (Exception e) {
e.printStackTrace();
}
finally {
if (is != null) is.close();
}
Пример кода для поиска
QueryBuilder queryBuilderFullText = null;
queryBuilderFullText = QueryBuilders.filteredQuery(QueryBuilders.matchAllQuery(),
FilterBuilders.regexpFilter("_all", "[0-9]{3}?[0-9]{2}?[0-9]{4}"));
SearchRequestBuilder requestBuilder;
requestBuilder = client.prepareSearch()
.setIndices(getDomainIndexId(project))
.setTypes(getProjectTypeId(project))
.setQuery(queryBuilderFullText);
SearchResponse response = requestBuilder.execute().actionGet(ES_TIMEOUT_MS);
SearchHits hits = response.getHits();
if (hits.getTotalHits() > 0) {
System.out.println(hits.getTotalHits());
} else {
return 0l;
}
Я получаю хиты следующее:
45-555-5462
457-55-5462
4578-55-5462
457-55-54623
457-55-5462-23
Но согласно моему требованию, его должен возвращать только «457-55-5462» (на основе соответствия шаблону «xxx-xx-xxxx»).
Пожалуйста, помогите.
возможно дубликат [Как соответствовать шаблону, как «ххх-хх-хххх» для того, чтобы искать документы с номерами социального обеспечения с использованием упругого поиска?] (Http://stackoverflow.com/questions/27922057/how-to-match-the-pattern-like-xxx-xx-xxxx-in-order-to-look-for-documents-with) – funkwurm
@funkwurm Я изменил запрос в соответствии с сообщением femtoRgon потому что некоторые символы и привязки не поддерживаются методом упругого поиска. Поэтому я здесь с обновленным поисковым запросом. –
Да, я заметил, что после пометки, но я не могу отменить флаг, извините за это. Я ответил также, надеюсь, что дает то, что вам нужно :) – funkwurm