A name (e.g., business partner) is recorded in a table and also shows in the list view, but when searching/filtering for it, it isn’t found.
C_BPartner_ID=3296013
.Check c_bpartner_adv_search
and retrieve the Elasticsearch document ID.
select c_bpartner_id, es_documentid, created, updated, * from c_bpartner_adv_search where c_bpartner_id=3296013;
A possible result could look like this:
c_bpartner_id | es_documentid | created | updated |
---|---|---|---|
3296013 | 3296013-3360717-X | 2018-04-14 07:22:23.000000 +01:00 | 2021-04-10 20:21:55.000000 +01:00 |
3296013 | 3296013-3370769-3471263 | 2018-04-14 07:22:23.000000 +01:00 | 2021-04-10 20:21:55.000000 +01:00 |
Check if a given document ID is indexed on Elasticsearch.
GET http://localhost:19200/fts_bpartner/_doc/3296013-3360717-X
Check how many documents are in that Elasticsearch index.
GET http://localhost:19200/fts_bpartner/_count
Check for the record ID in the Elasticsearch index queue.
select * from ES_FTS_Index_Queue where record_id=3296013;
Add all missing records (e.g., business partners) to the Elasticsearch index.
INSERT INTO es_fts_index_queue (es_fts_config_id, eventtype, ad_table_id, record_id)
SELECT (SELECT es_fts_config_id FROM es_fts_config WHERE es_index = 'fts_bpartner') AS es_fts_config_id,
'U' AS eventtype,
get_table_id('C_BPartner') AS ad_table_id,
bp.c_bpartner_id AS record_id
FROM c_bpartner bp
ORDER BY bp.c_bpartner_id
;
Check the indexing progress.
select processed, count(1) from ES_FTS_Index_Queue group by rollup (processed);
If the Elasticsearch is buried somewhere deep in a docker container and it’s not accessible from the outside, then you have to create an SSH tunnel and map the Elasticsearch standard port 9200
to your localhost port 19200
, e.g.:
putty elasticsearch-host -L 19200:search:9200