added es code

This commit is contained in:
Pratik Das
2020-12-13 17:12:14 +05:30
parent c358d28ca6
commit 48cdce6e65
60 changed files with 6976 additions and 0 deletions

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,49 @@
<configuration debug="true">
<include
resource="/org/springframework/boot/logging/logback/base.xml" />
<appender name="STDOUT"
class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%X{user}] [%X{function}] [%thread]
%-5level %logger{36} - %msg%n
</pattern>
</encoder>
</appender>
<appender name="FILE"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>app.log</file>
<rollingPolicy
class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${app.logPathPrefix}/myproject.%d{yyyy-MM-dd}.%i.log.gz
</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>50MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%level] [%thread]
[%logger:%line] %msg%n
</pattern>
</encoder>
</appender>
<logger name="org.springframework" level="ERROR" />
<logger name="io.pratik" level="INFO" />
<logger name="org.springframework.data.elasticsearch.client.WIRE" level="trace"/>
<root level="info">
<appender-ref ref="STDOUT" />
<appender-ref ref="FILE" />
</root>
<springProfile name="dev">
<logger name="io.pratik" level="info" />
</springProfile>
<springProfile name="test">
<logger name="io.pratik" level="trace" />
</springProfile>
</configuration>

View File

@@ -0,0 +1,79 @@
<!DOCTYPE html SYSTEM "http://www.thymeleaf.org/dtd/xhtml1-strict-thymeleaf-4.dtd">
<html xmlns:th="http://www.thymeleaf.org" lang="en">
<head>
<title>Product Search</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/css/bootstrap.min.css" integrity="sha384-TX8t27EcRE3e/ihU7zmQxVncDAy5uIKz4rEkgIXeMed4M0jlfIDPvg6uqKI2xXr2" crossorigin="anonymous">
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/themes/smoothness/jquery-ui.css">
</head>
<body>
<div class="card mb-3" style="max-width: 540px;">
<p class="text-info">Search Products</p>
<span class="border border-info">
<div class="input-group mb-3">
<input type="text" class="form-control" placeholder="Search Product by Name or description" aria-label="Product Name" aria-describedby="btnNameSearch" id="productNamedesc">
<div class="input-group-append">
<button class="btn btn-outline-secondary" type="button" id="btnNameSearch">Search</button>
</div>
</div>
</span>
</div>
<div id="results" class="card"></div>
<script src="https://code.jquery.com/jquery-3.5.1.min.js" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js" integrity="sha384-OgVRvuATP1z7JjHLkuOU7Xw704+h835Lr+6QL9UvYjZE3Ipu6Tp75j7Bh/kR0JKI" crossorigin="anonymous"></script>
<script th:inline="javascript">
$(document).ready(function() {
$('#productNamedesc').autocomplete({
source: function (request, response){
$.get("http://localhost:8080/suggestions?",{q : request.term},function(data, status){
$("#results").html("");
if(status=='success'){
response(data);
}
});
}
}
);
$("#btnNameSearch").click(function(){
var inputText = $("#productNamedesc").val();
if(inputText.length == 0) {
alert("Enter product name or description");
}else{
var response = '';
$.ajax({
type: "GET",
url: "http://localhost:8080/products?q="+inputText,
async: true,
success: function(resp) {
var len = resp.length;
var strHtml = "";
if(len == 0) {
$("#results").html("<p class='text-danger'>Zero matches</p>");
}else{
strHTML = "<p class='text-success'>"+len + " matches found.</p>";
strHTML += "<ul class='list-unstyled'>";
for(var i=0; i<len; i++){
strHTML += "<li>"+resp[i].name+"</li>";
}
strHTML = strHTML + "</ul>";
$("#results").html(strHTML)
}
}
});
}
});
});
</script>
</body>
</html>

View File

@@ -0,0 +1,3 @@
artifactId=productsearchapp
groupId=io.pratik.elasticsearch
version=0.0.1-SNAPSHOT

View File

@@ -0,0 +1,13 @@
io/pratik/elasticsearch/services/ProductSearchServiceWithRepo.class
io/pratik/elasticsearch/services/ProductSearchService.class
io/pratik/elasticsearch/productsearchapp/ProductsearchappApplication.class
io/pratik/elasticsearch/models/SearchSuggest$SearchSuggestBuilder.class
io/pratik/elasticsearch/services/SearchService.class
io/pratik/elasticsearch/models/Product.class
io/pratik/elasticsearch/repositories/SearchSuggestRepository.class
io/pratik/elasticsearch/productsearchapp/ElasticsearchClientConfig.class
io/pratik/elasticsearch/controllers/UIController.class
io/pratik/elasticsearch/controllers/SearchController.class
io/pratik/elasticsearch/repositories/ProductRepository.class
io/pratik/elasticsearch/models/Product$ProductBuilder.class
io/pratik/elasticsearch/models/SearchSuggest.class

View File

@@ -0,0 +1,11 @@
/Users/fab/Documents/pratik/code-examples/spring-boot/spring-boot-elasticsearch/src/main/java/io/pratik/elasticsearch/repositories/ProductRepository.java
/Users/fab/Documents/pratik/code-examples/spring-boot/spring-boot-elasticsearch/src/main/java/io/pratik/elasticsearch/services/SearchService.java
/Users/fab/Documents/pratik/code-examples/spring-boot/spring-boot-elasticsearch/src/main/java/io/pratik/elasticsearch/models/SearchSuggest.java
/Users/fab/Documents/pratik/code-examples/spring-boot/spring-boot-elasticsearch/src/main/java/io/pratik/elasticsearch/controllers/UIController.java
/Users/fab/Documents/pratik/code-examples/spring-boot/spring-boot-elasticsearch/src/main/java/io/pratik/elasticsearch/controllers/SearchController.java
/Users/fab/Documents/pratik/code-examples/spring-boot/spring-boot-elasticsearch/src/main/java/io/pratik/elasticsearch/services/ProductSearchService.java
/Users/fab/Documents/pratik/code-examples/spring-boot/spring-boot-elasticsearch/src/main/java/io/pratik/elasticsearch/repositories/SearchSuggestRepository.java
/Users/fab/Documents/pratik/code-examples/spring-boot/spring-boot-elasticsearch/src/main/java/io/pratik/elasticsearch/productsearchapp/ElasticsearchClientConfig.java
/Users/fab/Documents/pratik/code-examples/spring-boot/spring-boot-elasticsearch/src/main/java/io/pratik/elasticsearch/services/ProductSearchServiceWithRepo.java
/Users/fab/Documents/pratik/code-examples/spring-boot/spring-boot-elasticsearch/src/main/java/io/pratik/elasticsearch/models/Product.java
/Users/fab/Documents/pratik/code-examples/spring-boot/spring-boot-elasticsearch/src/main/java/io/pratik/elasticsearch/productsearchapp/ProductsearchappApplication.java

View File

@@ -0,0 +1,2 @@
io/pratik/elasticsearch/productsearchapp/ProductSearchServiceTest.class
io/pratik/elasticsearch/productsearchapp/ProductSearchServiceWithRepoTest.class

View File

@@ -0,0 +1,2 @@
/Users/fab/Documents/pratik/code-examples/spring-boot/spring-boot-elasticsearch/src/test/java/io/pratik/elasticsearch/productsearchapp/ProductSearchServiceWithRepoTest.java
/Users/fab/Documents/pratik/code-examples/spring-boot/spring-boot-elasticsearch/src/test/java/io/pratik/elasticsearch/productsearchapp/ProductSearchServiceTest.java

View File

@@ -0,0 +1,4 @@
-------------------------------------------------------------------------------
Test set: io.pratik.elasticsearch.productsearchapp.ProductSearchServiceTest
-------------------------------------------------------------------------------
Tests run: 8, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 6.224 s - in io.pratik.elasticsearch.productsearchapp.ProductSearchServiceTest

View File

@@ -0,0 +1,4 @@
-------------------------------------------------------------------------------
Test set: io.pratik.elasticsearch.productsearchapp.ProductSearchServiceWithRepoTest
-------------------------------------------------------------------------------
Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.528 s - in io.pratik.elasticsearch.productsearchapp.ProductSearchServiceWithRepoTest