Skip to content

Instantly share code, notes, and snippets.

@JasonStoltz
JasonStoltz / medium1-1
Created June 27, 2019 20:28
Medium 1-1
npm install -g create-react-app
create-react-app video-game-search --use-npm
cd video-game-search
@JasonStoltz
JasonStoltz / App.js
Created June 27, 2019 20:29
Medium - Search UI - 1
// Step #1, import Statements
import React from "react";
import AppSearchAPIConnector from "@elastic/search-ui-app-search-connector";
import { SearchProvider, Results, SearchBox } from "@elastic/react-search-ui";
import { Layout } from "@elastic/react-search-ui-views";
import "@elastic/react-search-ui-views/lib/styles/styles.css";
// Step #2, The Connector
const connector = new AppSearchAPIConnector({
searchKey: "[YOUR_SEARCH_KEY]",
engineName: "video-games",
@JasonStoltz
JasonStoltz / App.js
Created June 27, 2019 20:31
Medium - Search UI - 2
import React from "react";
import AppSearchAPIConnector from "@elastic/search-ui-app-search-connector";
import { SearchProvider, Results, SearchBox } from "@elastic/react-search-ui";
import { Layout } from "@elastic/react-search-ui-views";
import "@elastic/react-search-ui-views/lib/styles/styles.css";
@JasonStoltz
JasonStoltz / App.js
Created June 27, 2019 20:31
Medium - Search UI - 3
import "@elastic/react-search-ui-views/lib/styles/styles.css";
@JasonStoltz
JasonStoltz / App.js
Created June 27, 2019 20:32
Medium - Search UI - 4
const connector = new AppSearchAPIConnector({
searchKey: "[YOUR_SEARCH_KEY]",
engineName: "video-games",
hostIdentifier: "[YOUR_HOST_IDENTIFIER]"
});
@JasonStoltz
JasonStoltz / App.js
Created June 27, 2019 20:33
Medium - Search UI - 5
const configurationOptions = {
apiConnector: connector,
searchQuery: {
search_fields: {
// 1. Search by name of video game.
name: {}
},
// 2. Results: name of the video game, its genre, publisher, scores, and platform.
result_fields: {
name: {
@JasonStoltz
JasonStoltz / App.js
Created June 27, 2019 20:34
Medium - Search UI - 6
export default function App() {
return (
<SearchProvider config={configurationOptions}>
<div className="App">
<Layout
header={<SearchBox />}
// titleField is the most prominent field within a result: the result header.
bodyContent={<Results titleField="name" urlField="image_url" />}
/>
</div>
@JasonStoltz
JasonStoltz / App.js
Created June 27, 2019 20:35
Medium - Search UI - 7
import { SearchProvider, Results, SearchBox } from "@elastic/react-search-ui";
@JasonStoltz
JasonStoltz / App.js
Created June 27, 2019 20:35
Medium - Search UI - 8
import {
PagingInfo,
ResultsPerPage,
Paging,
Facet,
SearchProvider,
Results,
SearchBox,
Sorting
} from "@elastic/react-search-ui";
@JasonStoltz
JasonStoltz / App.js
Created June 27, 2019 20:36
Medium - Search UI - 9
<Layout
header={<SearchBox />}
bodyContent={<Results titleField="name" urlField="image_url" />}
sideContent={
<div>
<Sorting
label={"Sort by"}
sortOptions={[
{
name: "Relevance",