Welcome to the Beyond Blog

A first look at Faceted Search in Oracle Apex 19.2 EA

a1_20190923-154723_1

We use Oracle APEX for product development as it's a great low-code cloud-based environment.  We keep an eye on early adopter releases as they provide early preview into upcoming features.  The new APEX 19.2 Early Adopter contains a bunch of new features, one that particularly appealed to us was the new Faceted Search.  Faceted Search offers additional filters based on item classification within the data.  The best way to see this is through an example.

I started by creating an instance on the early adopter site https://tryapexnow.com (Note please also refer to the notes from https://blogs.oracle.com/apex/oracle-apex-192-early-adopter-now-available which indicate that this website will likely disappear when the product goes GA and also consider that functionality can change).  

​Then I created some test data as follows.  These are two simple tables called MYAUTHORS (containing my made-up book authors) and MYCATEGORIES (a list of sample book genres) complete with primary and foreign keys. 


CREATE TABLE MyCategories (
  Category_id      NUMBER        GENERATED ALWAYS AS IDENTITY,
  Category_Name varchar2(20) not null
);

ALTER TABLE myCategories
  ADD (
    CONSTRAINT myCategories_pk PRIMARY KEY (Category_id)
  );

insert into MyCategories(Category_Name) values ('SCIENCE FICTION');
insert into MyCategories(Category_Name) values ('ROMANCE');
insert into MyCategories(Category_Name) values ('MECHANICS');


CREATE TABLE MyAuthors (
  Author_id      NUMBER        GENERATED ALWAYS AS IDENTITY,
  Author_First_Name  varchar2(20) Not Null,
  Author_Last_Name varchar2(30) not Null,  
  Age  Number(2) NOT NULL,
  Sex varchar2(20) not null,
  Category_Id number not null,
  Earnings number(9,2) not null
);

ALTER TABLE myAuthors
  ADD (
    CONSTRAINT myAuthors_pk PRIMARY KEY (Author_id)
  );

ALTER TABLE myAuthors
  ADD (
    CONSTRAINT Category_fk Foreign Key (Category_Id)
      REFERENCES MyCategories(Category_id)
  );

Insert into myAuthors(Author_First_Name,Author_Last_Name,Age,Sex,Category_id,Earnings)
values ('MARY','CHRISTMAS',90,'F',1,90000)

Insert into myAuthors(Author_First_Name,Author_Last_Name,Age,Sex,Category_id,Earnings)
values ('DAVE','SMITH',58,'M',1,80000)

Insert into myAuthors(Author_First_Name,Author_Last_Name,Age,Sex,Category_id,Earnings)
values ('HELEN','KELL',27,'F',1,10000)

Insert into myAuthors(Author_First_Name,Author_Last_Name,Age,Sex,Category_id,Earnings)
values ('PHIL','MORGAN',48,'M',2,20000)

Insert into myAuthors(Author_First_Name,Author_Last_Name,Age,Sex,Category_id,Earnings)
values ('ELLIS','JONES',40,'M',3,21000)

Insert into myAuthors(Author_First_Name,Author_Last_Name,Age,Sex,Category_id,Earnings)
values ('SIMON','GULLIVER',19,'M',3,40000)

Insert into myAuthors(Author_First_Name,Author_Last_Name,Age,Sex,Category_id,Earnings)
values ('BETTY','CARTER',29,'F',3, 43221)

------

Insert into myAuthors(Author_First_Name,Author_Last_Name,Age,Sex,Category_id,Earnings)
values ('ALICE','Jones',29,'F',3,23000)

Insert into myAuthors(Author_First_Name,Author_Last_Name,Age,Sex,Category_id,Earnings)
values ('BRYONY','BUDD',39,'F',3,18000)

Insert into myAuthors(Author_First_Name,Author_Last_Name,Age,Sex,Category_id,Earnings)
values ('SALLY','EMU',19,'F',2,5000)

Insert into myAuthors(Author_First_Name,Author_Last_Name,Age,Sex,Category_id,Earnings)
values ('BETTY','PALLISTER',29,'F',2,6000)

Insert into myAuthors(Author_First_Name,Author_Last_Name,Age,Sex,Category_id,Earnings)
values ('DANIEL','CARTER',68,'M',1,67000)

Insert into myAuthors(Author_First_Name,Author_Last_Name,Age,Sex,Category_id,Earnings)
values ('BURT','WHEELAN',92,'F',1,54000)
 

Now we have the data, we can create the application.

Click on NEW APPLICATION and give it a title.

Then click onto Add Page.

Click onto FACETED SEARCH 

Now we select the table which is the driving table - in this case the MYAUTHORS table. 

Now we can create the application and run it - just press Create Application and then run.

Wow!  We can see that we now have a new special search panel created that shows a range of options derived from the data and allows us to quickly narrow down our searching.  Note also that APEX has brought in the CATEGORY NAME into the main panel.

​Here we narrow down the records to just those in the MECHANICS category,

 We can edit the APEX application, including removing any auto-generated items we do not need (e.g. we may decide to remove the names) and then of course we can add additional elements to the application, including adding charts, etc.

​So without a great deal of effort, we were quickly able to try out the new Faceted Search facility and start to contemplate how this concept could be employed and provide an enhanced experience for the users.

New Language Narrative in Oracle Analytics Cloud
 

Comments

No comments made yet. Be the first to submit a comment
Already Registered? Login Here
Guest
Wednesday, 13 November 2019

Demonstration

Request a demo of our products here

REQUEST DEMO

Contact

Beyond Systems Limited

Suite 1.01 Jactin House,

24 Hood Street, Manchester

M4 6WX United Kingdom

 

 

Tel:    +44(0)8450 940 998

Email:  contact@wegobeyond.co.uk