SlideShare a Scribd company logo
1 of 63
SOLR – ce & cum
Oana Brezai
2
ce?
● motor de cautare “full text”
● cautare pe categorii (facets)
● sugestii / corectii
● recomandari
● join multicore-uri
● arhitectura cloud
● moduri de lucru in Java
motor de cautare “full text”
4
motor de cautare “full text”
● indexare pe campuri
• schema.xml
• campuri + tipuri
• titlu
• autor
• data
• cuvinte cheie
• continut
• solrconfig.xml
● prelucrare limbaj natural
● sinonime
● stopwords
● extragere radacina
5
motor de cautare “full text”
● indexare pe campuri
● prelucrare limbaj natural
● sinonime
● stopwords
● extragere radacina
demo...
7
destinatii de calatorie
http://46.101.251.147:8080
● cautari in site:
● moscova
● calatorie
● pe
● cautare
● ou / oua
● (sinonime perfecte)
ranking!!!ranking!!!
intrebare: importanta campurilor
9
motor de cautare “full text”
● cautare pe campuri cu “boosting”
name^80 category^70
categories^60 brand^50
keywords^40 name^30
description^10 all_fields^5 boosting!!!boosting!!!
cum?
11
motor de cautare “full text”
● indexare pe campuri
● prelucrare limbaj natural
index invers
13
indexare
doc1: cuvant1 cuvant2 cuvant3
doc2: cuvant2 cuvant4 cuvant5
doc3: cuvant5 cuvant6 cuvant1
14
indexare
doc1: cuvant1 cuvant2 cuvant3
doc2: cuvant2 cuvant4 cuvant5
doc3: cuvant5 cuvant6 cuvant1
Index invers:
cuvant1 doc1, doc3→
cuvant2 doc1, doc2→
cuvant3 doc1→
...
15
motor de cautare “full text”
● indexare pe campuri
● prelucrare limbaj natural
● sinonime
● stopwords
● extragere radacina
cum?
analizoare
18
tokenizatoare si filtre
<analyzer >
<tokenizer
class="solr.StandardTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.StopFilterFactory"
words="lang/stopwords_ro.txt" />
<filter class="solr.StemmerOverrideFilterFactory"
dictionary="lang/stemdict_ro.txt" />
<filter class="solr.SnowballPorterFilterFactory"
language="Romanian" />
</analyzer>
cum masuram calitatea?
20
precision vs recall
rezultate relevante
total corect
rezultate relevante
total rezultate
21
ce?
● motor de cautare “full text”
● cautare pe categorii (facets)
● sugestii / corectii
● recomandari
● join multicore-uri
● arhitectura cloud
● moduri de lucru in Java
22
cautare pe categorii: “facets”
● simple
● cuvinte: marca, culoare
● numere: marime
● intervale: pret
● filtrare multipla
● pivot
● stats
23
cautare pe categorii: “facets”
● simple
● cuvinte: marca, culoare
● numere: marime
● intervale: pret
● filtrare multipla
● pivot
● stats
24
cautare pe categorii: “facets”
● simple
● cuvinte: marca, culoare
● numere: marime
● intervale: pret
● filtrare multipla
● pivot
● stats
25
facets - pivot
trips:
facet=true
facet.pivot=continent,tara,regiune_oras
26
cautare pe categorii: “facets”
● simple
● cuvinte: marca, culoare
● numere: marime
● intervale: pret
● filtrare multipla
● pivot
● stats
27
facets - stats
http://localhost:8983/solr/eshop/select?
q=ruj
&rows=0
&wt=json&indent=true
&stats=true
&stats.field={!tag=piv1}price
&facet=true
&facet.pivot={!stats=piv1}brand
28
ce?
● motor de cautare “full text”
● cautare pe categorii (facets)
● sugestii / corectii
● recomandari
● join multicore-uri
● arhitectura cloud
● moduri de lucru in Java
demo...
30
sugestii - demo
● carrefour: lapt
● carturesti: cartarascu (in loc de cartarescu)
● amazon: cartarascu did you mean…?→
cum?
32
sugestii – orientat pe cuvinte
<lst name="suggester">
<str name="name">suggestDictionar</str>
<str name="classname">
org.apache.solr.spelling.suggest.Suggester</str>
<str name="lookupImpl">AnalyzingInfixLookupFactory</str>
<str name="indexPath">suggester_infix_dir_</str>
<str name="field">name_suggest</str>
<str name="suggestAnalyzerFieldType">suggestType</str>
<str name="buildOnCommit">false</str>
<str name="buildOnStartup">false</str>
<str name="highlight">false</str>
</lst>
33
sugestii – orientat pe produse
<lst name="suggester">
<str name="name">suggestDictionar</str>
<str name="classname">org.apache.solr.spelling.suggest.Suggester</str>
<str name="dictionaryImpl">DocumentDictionaryFactory</str>
<str name="lookupImpl">AnalyzingInfixLookupFactory</str>
<str name="indexPath">suggester_infix_dir_name</str>
<str name="field">name</str>
<str name="weightField">price</str>
<str name="payloadField">id</str>
<str name="contextField">code</str>
<str name="suggestAnalyzerFieldType">suggestTypeLc</str>
<str name="buildOnCommit">false</str>
<str name="highlight">false</str>
</lst>
34
corectii
<lst name="spellchecker">
<str name="classname">
solr.DirectSolrSpellChecker</str>
<str name="spellcheckIndexDir">
./spellcheckerDirect</str>
<str name="field">name</str>
<str name="buildOnCommit">false</str>
</lst>
35
ce?
● motor de cautare “full text”
● cautare pe categorii (facets)
● sugestii / corectii
● recomandari
● join multicore-uri
● arhitectura cloud
● moduri de lucru in Java
demo...
37
recomandari – demo
● emag: laptop
● produse similare
● produse complementare
● altii au mai cumparat si...
38
recomandari – teorie
● content based
● produse similare (aceeasi categorie)
● collaborative filtering
● cine a cumparat asta, a mai cumparat si…. (alte categorii)
● hybrid
● bazat pe o mai buna cunoastere a utilizatorilor + produselor
cum?
40
recomandari
● content based:
● more like this
● collaborative filtering:
● select (streaming)
41
more like this
<requestHandler name="/mlt" class="solr.MoreLikeThisHandler">
<lst name="defaults">
<str name="mlt.fl">name, category,
description</str>
<str name="mlt.mintf">1</str>
<str name="mlt.mindf">1</str>
<str name="mlt.boost">true</str>
<str name="mlt.qf">name^90
category^70 description</str>
</lst>
</requestHandler>
42
recomandari
● content based:
● more like this
● collaborative filtering:
● select (streaming)
43
collaborative filtering
top(n="5",
sort="count(*) desc",
nodes(ratings,
top(n="30",
sort="count(*) desc",
nodes(ratings,
search(ratings, q="userId:305", fl="movieId", sort="movieId asc",
fq="rating:[3 TO 5]", qt="/export"),
walk="movieId->movieId",
gather="userId",
fq="rating:[3 TO 5]",
maxDocFreq="10000",
count(*))),
walk="node->userId",
gather="movieId",
fq="rating:[3 TO 5]",
count(*)))
44
ce?
● motor de cautare “full text”
● cautare pe categorii (facets)
● sugestii / corectii
● recomandari
● join multicore-uri
● arhitectura cloud
● moduri de lucru in Java
discutie - multicore
46
join multicore-uri
● core1: produse
● core2: cosuri
● core3: utilizatori
● core4: evenimente
● cosuri
● utilizatori
● produse
discutie – solr read
48
citire vs scriere
cum?
50
join multicore-uri
● clasic
● cloud (streams)
51
join multicore-uri
● clasic
● join
● nested query
● restrictii
● cloud (streams)
52
join – clasic
select on core_1
{!join fromIndex=core_2
from=core_2_field_1
to=core_1_field_1}
core_2_field_2:value
53
join – clasic nested query
http://localhost:8983/solr/parents/
select?
q=alive:yes AND
_query_:"{!
join
fromIndex=children
from=fatherid to=parentid
v='childname:Tom'}"
54
join multicore-uri
● clasic
● subquery
● nested query
● cloud (streams)
55
join – stream-uri
gatherNodes(movies,
gatherNodes(ratings,
walk="389→userId",
gather="movieId"),
walk="node->id",
gather="title")
56
ce?
● motor de cautare “full text”
● cautare pe categorii (facets)
● sugestii / corectii
● recomandari
● join-uri multicore-uri
● arhitectura cloud
● moduri de lucru in Java
57
arhitectura cloud
● scalabilitate
● disponibilitate
● durabilitate
cum?
59
arhitectura cloud
Replica 1_1 Replica 1_2
Replica 2_1 Replica 2_2
Zookeeper
Shard 1
Shard 2
60
ce?
● motor de cautare “full text”
● cautare pe categorii (facets)
● sugestii / corectii
● recomandari
● join-uri multicore-uri
● arhitectura cloud
● moduri de lucru in Java
cum?
62
moduri de lucru in java
● similar cu lucrul cu BD clasice
● Spring Data
● SOLRJ
● atentie la versiunile suportate
multumesc

More Related Content

Similar to Solr ce si cum

Análisis de las novedades del Elastic Stack
Análisis de las novedades del Elastic StackAnálisis de las novedades del Elastic Stack
Análisis de las novedades del Elastic StackElasticsearch
 
Search Queries Explained – A Deep Dive into Query Rules, Query Variables and ...
Search Queries Explained – A Deep Dive into Query Rules, Query Variables and ...Search Queries Explained – A Deep Dive into Query Rules, Query Variables and ...
Search Queries Explained – A Deep Dive into Query Rules, Query Variables and ...Mikael Svenson
 
Fulltext search hell, como estruturar um sistema de busca desacoplado
Fulltext search hell, como estruturar um sistema de busca desacopladoFulltext search hell, como estruturar um sistema de busca desacoplado
Fulltext search hell, como estruturar um sistema de busca desacopladoJuliana Lucena
 
Introduction to Elasticsearch
Introduction to ElasticsearchIntroduction to Elasticsearch
Introduction to ElasticsearchSperasoft
 
Stop Playing Hide and Seek with Google: Drupal SEO for Non-profits
Stop Playing Hide and Seek with Google: Drupal SEO for Non-profitsStop Playing Hide and Seek with Google: Drupal SEO for Non-profits
Stop Playing Hide and Seek with Google: Drupal SEO for Non-profitsDesignHammer
 
BrightonSEO - How to do ecommerce keyword research at huge scale
BrightonSEO - How to do ecommerce keyword research at huge scaleBrightonSEO - How to do ecommerce keyword research at huge scale
BrightonSEO - How to do ecommerce keyword research at huge scalePatrick Reinhart
 
Automating SEO while staying whitehat
Automating SEO while staying whitehatAutomating SEO while staying whitehat
Automating SEO while staying whitehatDejan SEO
 
ElasticSearch in action
ElasticSearch in actionElasticSearch in action
ElasticSearch in actionCodemotion
 
Back to Basics Webinar 5: Introduction to the Aggregation Framework
Back to Basics Webinar 5: Introduction to the Aggregation FrameworkBack to Basics Webinar 5: Introduction to the Aggregation Framework
Back to Basics Webinar 5: Introduction to the Aggregation FrameworkMongoDB
 
Searching for The Matrix in haystack (with Elasticsearch)
Searching for The Matrix in haystack  (with Elasticsearch)Searching for The Matrix in haystack  (with Elasticsearch)
Searching for The Matrix in haystack (with Elasticsearch)Tomas Sirny
 
Kickstart Your Technical SEO for WordPress
Kickstart Your Technical SEO for WordPressKickstart Your Technical SEO for WordPress
Kickstart Your Technical SEO for WordPressColby Dimock
 
Martina Welander - Google is a two pagesite
Martina Welander - Google is a two pagesiteMartina Welander - Google is a two pagesite
Martina Welander - Google is a two pagesiteNordicSitecoreConference
 
Elastic Stack roadmap deep dive
Elastic Stack roadmap deep diveElastic Stack roadmap deep dive
Elastic Stack roadmap deep diveElasticsearch
 
Keywords2013
Keywords2013Keywords2013
Keywords2013Jay Best
 
Making search better by tracking & utilizing user search behavior
Making search better by tracking & utilizing user search behaviorMaking search better by tracking & utilizing user search behavior
Making search better by tracking & utilizing user search behaviorSameer Maggon
 

Similar to Solr ce si cum (20)

Análisis de las novedades del Elastic Stack
Análisis de las novedades del Elastic StackAnálisis de las novedades del Elastic Stack
Análisis de las novedades del Elastic Stack
 
Search Queries Explained – A Deep Dive into Query Rules, Query Variables and ...
Search Queries Explained – A Deep Dive into Query Rules, Query Variables and ...Search Queries Explained – A Deep Dive into Query Rules, Query Variables and ...
Search Queries Explained – A Deep Dive into Query Rules, Query Variables and ...
 
Fulltext search hell, como estruturar um sistema de busca desacoplado
Fulltext search hell, como estruturar um sistema de busca desacopladoFulltext search hell, como estruturar um sistema de busca desacoplado
Fulltext search hell, como estruturar um sistema de busca desacoplado
 
Introduction to Elasticsearch
Introduction to ElasticsearchIntroduction to Elasticsearch
Introduction to Elasticsearch
 
Stop Playing Hide and Seek with Google: Drupal SEO for Non-profits
Stop Playing Hide and Seek with Google: Drupal SEO for Non-profitsStop Playing Hide and Seek with Google: Drupal SEO for Non-profits
Stop Playing Hide and Seek with Google: Drupal SEO for Non-profits
 
BrightonSEO - How to do ecommerce keyword research at huge scale
BrightonSEO - How to do ecommerce keyword research at huge scaleBrightonSEO - How to do ecommerce keyword research at huge scale
BrightonSEO - How to do ecommerce keyword research at huge scale
 
Automating SEO while staying whitehat
Automating SEO while staying whitehatAutomating SEO while staying whitehat
Automating SEO while staying whitehat
 
ElasticSearch in action
ElasticSearch in actionElasticSearch in action
ElasticSearch in action
 
Back to Basics Webinar 5: Introduction to the Aggregation Framework
Back to Basics Webinar 5: Introduction to the Aggregation FrameworkBack to Basics Webinar 5: Introduction to the Aggregation Framework
Back to Basics Webinar 5: Introduction to the Aggregation Framework
 
Google power search
Google power searchGoogle power search
Google power search
 
Searching for The Matrix in haystack (with Elasticsearch)
Searching for The Matrix in haystack  (with Elasticsearch)Searching for The Matrix in haystack  (with Elasticsearch)
Searching for The Matrix in haystack (with Elasticsearch)
 
Kickstart Your Technical SEO for WordPress
Kickstart Your Technical SEO for WordPressKickstart Your Technical SEO for WordPress
Kickstart Your Technical SEO for WordPress
 
Google Is a Two Page Site
Google Is a Two Page SiteGoogle Is a Two Page Site
Google Is a Two Page Site
 
Martina Welander - Google is a two pagesite
Martina Welander - Google is a two pagesiteMartina Welander - Google is a two pagesite
Martina Welander - Google is a two pagesite
 
Capcon 2010
Capcon 2010Capcon 2010
Capcon 2010
 
Elastic Stack roadmap deep dive
Elastic Stack roadmap deep diveElastic Stack roadmap deep dive
Elastic Stack roadmap deep dive
 
Keywords2013
Keywords2013Keywords2013
Keywords2013
 
Search Analytics - Comperio
Search Analytics - ComperioSearch Analytics - Comperio
Search Analytics - Comperio
 
SEO for developers
SEO for developersSEO for developers
SEO for developers
 
Making search better by tracking & utilizing user search behavior
Making search better by tracking & utilizing user search behaviorMaking search better by tracking & utilizing user search behavior
Making search better by tracking & utilizing user search behavior
 

Recently uploaded

The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfCionsystems
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendArshad QA
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 

Recently uploaded (20)

The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdf
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and Backend
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 

Solr ce si cum