Как создать индекс Lucene из столбца / поле извлечения из базы данных в Lucene 7.6? - PullRequest
0 голосов
/ 12 марта 2019

У меня есть данные в массиве json из базы данных, например:

[
  {
    "_id": "1",
    "column1": "sales value trend of abc store",
    "column2": "Sales value",
    "column3": "of",
    "column4": "Sarees And Suitings"
  },
  {
    "_id": "2",
    "column1": "sales value trend of SS AND CO",
    "column2": "Sales volume",
    "column3": "on",
    "column4": "City Fashion"
  }

Я хочу создать индекс Lucene, чтобы я мог искать данные в столбцах, а не в строке.и получить имя столбца, в котором найдены данные.

Я использовал такой код:

JSONArray querydata= ((JSONArray) Query.executeQuery();

for (int i = 0; i < querydata.length(); i++) {
    JsonObject data = querydata.getJSONObject(i);
    createindex(data);
}

createindex(JsonObject data) {
    document.add(new StringField(LuceneConstants.column_NAME, "column1", Field.Store.YES));
    document.add(new TextField(LuceneConstants.CONTENTS, data.optString("column1"), Field.Store.YES));
    document.add(new StringField(LuceneConstants.Row_Name, data.optString("_id"), Field.Store.YES));

    document.add(new StringField(LuceneConstants.column_NAME, "column2", Field.Store.YES));
    document.add(new TextField(LuceneConstants.CONTENTS, data.optString("column2"), Field.Store.YES));
    document.add(new StringField(LuceneConstants.Row_Name, data.optString("_id"), Field.Store.YES));     
}

writer.addDocument(document);
...