поиск по шаблону в упругом поиске?

Продолжая из моего ранеесообщениеЯ изменил запрос в соответствии с 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»).

Пожалуйста помоги.

Ответы на вопрос(2)

Ваш ответ на вопрос