diff --git a/src/org/lineageos/lineageparts/search/LineagePartsSearchIndexablesProvider.java b/src/org/lineageos/lineageparts/search/LineagePartsSearchIndexablesProvider.java
index b7de5a4..88d43de 100644
--- a/src/org/lineageos/lineageparts/search/LineagePartsSearchIndexablesProvider.java
+++ b/src/org/lineageos/lineageparts/search/LineagePartsSearchIndexablesProvider.java
@@ -32,6 +32,7 @@
 import java.util.Set;
 
 import static android.provider.SearchIndexablesContract.COLUMN_INDEX_NON_INDEXABLE_KEYS_KEY_VALUE;
+import static android.provider.SearchIndexablesContract.COLUMN_INDEX_RAW_CLASS_NAME;
 import static android.provider.SearchIndexablesContract.COLUMN_INDEX_RAW_ENTRIES;
 import static android.provider.SearchIndexablesContract.COLUMN_INDEX_RAW_ICON_RESID;
 import static android.provider.SearchIndexablesContract.COLUMN_INDEX_RAW_INTENT_ACTION;
@@ -39,8 +40,11 @@
 import static android.provider.SearchIndexablesContract.COLUMN_INDEX_RAW_INTENT_TARGET_PACKAGE;
 import static android.provider.SearchIndexablesContract.COLUMN_INDEX_RAW_KEY;
 import static android.provider.SearchIndexablesContract.COLUMN_INDEX_RAW_KEYWORDS;
+import static android.provider.SearchIndexablesContract.COLUMN_INDEX_RAW_PAYLOAD;
+import static android.provider.SearchIndexablesContract.COLUMN_INDEX_RAW_PAYLOAD_TYPE;
 import static android.provider.SearchIndexablesContract.COLUMN_INDEX_RAW_RANK;
 import static android.provider.SearchIndexablesContract.COLUMN_INDEX_RAW_SCREEN_TITLE;
+import static android.provider.SearchIndexablesContract.COLUMN_INDEX_RAW_SUMMARY_OFF;
 import static android.provider.SearchIndexablesContract.COLUMN_INDEX_RAW_SUMMARY_ON;
 import static android.provider.SearchIndexablesContract.COLUMN_INDEX_RAW_TITLE;
 import static android.provider.SearchIndexablesContract.COLUMN_INDEX_RAW_USER_ID;
@@ -79,7 +83,7 @@
                 continue;
             }
 
-            Object[] ref = new Object[7];
+            Object[] ref = new Object[INDEXABLES_XML_RES_COLUMNS.length];
             ref[COLUMN_INDEX_XML_RES_RANK] = 2;
             ref[COLUMN_INDEX_XML_RES_RESID] = i.getXmlRes();
             ref[COLUMN_INDEX_XML_RES_CLASS_NAME] = null;
@@ -123,16 +127,18 @@
             }
 
             for (SearchIndexableRaw raw : rawList) {
-                Object[] ref = new Object[14];
+                Object[] ref = new Object[INDEXABLES_RAW_COLUMNS.length];
                 ref[COLUMN_INDEX_RAW_RANK] = raw.rank > 0 ?
                         raw.rank : 2;
                 ref[COLUMN_INDEX_RAW_TITLE] = raw.title != null ?
                         raw.title : i.getTitle();
                 ref[COLUMN_INDEX_RAW_SUMMARY_ON] = i.getSummary();
-                ref[COLUMN_INDEX_RAW_KEYWORDS] = raw.keywords;
+                ref[COLUMN_INDEX_RAW_SUMMARY_OFF] = null;
                 ref[COLUMN_INDEX_RAW_ENTRIES] = raw.entries;
+                ref[COLUMN_INDEX_RAW_KEYWORDS] = raw.keywords;
                 ref[COLUMN_INDEX_RAW_SCREEN_TITLE] = raw.screenTitle != null ?
                         raw.screenTitle : i.getTitle();
+                ref[COLUMN_INDEX_RAW_CLASS_NAME] = null;
                 ref[COLUMN_INDEX_RAW_ICON_RESID] = raw.iconResId > 0 ? raw.iconResId :
                         (i.getIconRes() > 0 ? i.getIconRes() : R.drawable.ic_launcher_lineageos);
                 ref[COLUMN_INDEX_RAW_INTENT_ACTION] = raw.intentAction != null ?
@@ -144,6 +150,8 @@
                 ref[COLUMN_INDEX_RAW_KEY] = raw.key != null ?
                         raw.key : i.getName();
                 ref[COLUMN_INDEX_RAW_USER_ID] = -1;
+                ref[COLUMN_INDEX_RAW_PAYLOAD_TYPE] = null;
+                ref[COLUMN_INDEX_RAW_PAYLOAD] = null;
                 cursor.addRow(ref);
             }
         }
