added es code
This commit is contained in:
@@ -0,0 +1 @@
|
||||
|
||||
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -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>
|
||||
@@ -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>
|
||||
@@ -0,0 +1,3 @@
|
||||
artifactId=productsearchapp
|
||||
groupId=io.pratik.elasticsearch
|
||||
version=0.0.1-SNAPSHOT
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -0,0 +1,2 @@
|
||||
io/pratik/elasticsearch/productsearchapp/ProductSearchServiceTest.class
|
||||
io/pratik/elasticsearch/productsearchapp/ProductSearchServiceWithRepoTest.class
|
||||
@@ -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
|
||||
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -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
|
||||
@@ -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
|
||||
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user