SlideShare ist ein Scribd-Unternehmen logo
1 von 32
# 
Sven Erik Knop 
Technical Marketing Manager 
Ralf Gronkowski 
Principal Product Consultant
#
# 
• Why P4Search? 
• What is P4Search? 
• Implementation Details and Demonstration
#
# 
p4 files / p4 fstat / ... 
??? 
File names, 
Changes ... 
File content? 
C# 
.h 
JAVA 
PPTX 
PDF
# 
• Built-in command, since Perforce 2010.1 
• Search files stored in P4D based on content 
– Case sensitive and insensitive searches 
– Can use regular expressions 
– Can search through all revisions 
– Provide context search 
• Returns depot paths
# 
• A few drawbacks: 
– Text search only, limited to 4K lines 
– No search for Metadata such as attributes 
• Performance concerns: 
– Limited to 10,000 revisions by default 
– Memory and CPU consumption 
– But: lockless with peeking since 2013.3
# 
p4 files/p4 fstat 
index 
store 
search 
Search engine indexes content 
Stores it in its own database 
Users search the index first 
Index returns a depot path 
Index and Perforce Server 
can live on separate hosts
# 
• Lucene 
– Scalable, high performance indexing 
– Search Algorithms 
• Solr 
– Stand-alone enterprise search server 
– HTML Administration interface 
– Extensible 
• Tika 
– Content analysis tool
# 
• P4Search 
– Index queue (processing indexing requests) 
– Search controller (security) 
– RESTful API (integration into other tools) 
– UI (simple searches) 
• Runs in Jetty
# 
//depot/Talkhouse/rel1.0/com/walkerbros/common/widget/EBolt.java#10
# 
• Changes/Changelists 
• Branches 
• Jobs 
• Users 
• Workspaces 
• Depots
# 
• Content 
• Metadata (whatever that might be)
#
# 
• Accessible through p4 files / p4 fstat ...
#
# 
• For ordinary folks 
– p4 edit file 
– p4 attribute –n tags –v cool file 
– p4 submit -d “just defined a cool tag on file rev” 
• For admins 
– p4 attribute –f –n tags –v cool file#rev 
• Find them with 
• p4 fstat -Oa -F "attr-tags=cool" //depot/...
# 
• File content 
• P4 Metadata 
• P4 attributes 
• And the common Metadata if desired
#
# 
+ other fields
# 
No ACL’s, no permission
# 
• Is query endpoint for users 
• Has simplified API 
• Provides P4 authentication (password|ticket) 
• Filters query results honoring the existing 
P4 protections
# 
P4Search 
Search controller 
Solr 
Search index
# 
• External index and protection table? 
• Solution: 
– Use a programmable search engine 
– Use Perforce protections to filter results 
 Users need read access to files to be able to search
# 
• Jetty 
– Solr 
• Lucene 
• Jetty 
– P4Search 
• Search queue/Indexer 
• Search controller 
• RESTful API 
• UI
# 
• swarm.workshop.perforce.com/projects/perforce-software- 
p4search/files/main
# 
• Download from the Workshop 
• Follow the provided instructions to install 
• Run two services 
– p4search-solr 
– p4search-jetty
# 
• On first run index your entire depot 
– You probably don’t want to do this 
• On submit index new file revs 
– change-commit trigger on depot location 
• At any time any given change 
– curl POST --data commit,change# 
http://p4search:8080/api/queue/{token}
# 
• Indexing 
– With trigger P4D, so ultimately any given client and user 
• Searching 
– P4Search UI 
– Piper 
– Commons 
– Custom through P4Search API
# 
• Deep dive after learning Lucene/Solr 
• Starting point 
p4search/solr/example/solr/collection1/conf 
– schema.xml 
– solrconfig.xml
#
# 
Sven Erik Knop 
sknop@perforce.com 
Ralf Gronkowski 
rgronkowski@perforce.com 
@_gronk

Weitere ähnliche Inhalte

Ähnlich wie Mastering Your Universe with P4 Search

Swarm Update
Swarm UpdateSwarm Update
Swarm UpdatePerforce
 
Integrating the Solr search engine
Integrating the Solr search engineIntegrating the Solr search engine
Integrating the Solr search engineth0masr
 
Automation with phing
Automation with phingAutomation with phing
Automation with phingJoey Rivera
 
Active Directory & LDAP Authentication Without Triggers
Active Directory & LDAP Authentication Without TriggersActive Directory & LDAP Authentication Without Triggers
Active Directory & LDAP Authentication Without TriggersPerforce
 
Lucene Bootcamp - 2
Lucene Bootcamp - 2Lucene Bootcamp - 2
Lucene Bootcamp - 2GokulD
 
Transferring Changes Between Perforce Servers
Transferring Changes Between Perforce ServersTransferring Changes Between Perforce Servers
Transferring Changes Between Perforce ServersPerforce
 
Version Your Cloud: Using Perforce to Manage Your Object Storage
Version Your Cloud: Using Perforce to Manage Your Object StorageVersion Your Cloud: Using Perforce to Manage Your Object Storage
Version Your Cloud: Using Perforce to Manage Your Object StoragePerforce
 
Alfresco Day Stockholm 2015 - Alfresco One
Alfresco Day Stockholm 2015 - Alfresco OneAlfresco Day Stockholm 2015 - Alfresco One
Alfresco Day Stockholm 2015 - Alfresco OneNicole Szigeti
 
Spring Roo Add-On Development & Distribution
Spring Roo Add-On Development & DistributionSpring Roo Add-On Development & Distribution
Spring Roo Add-On Development & DistributionStefan Schmidt
 
Data interoperability toolkit (OpenMinTeD)
Data interoperability toolkit (OpenMinTeD)Data interoperability toolkit (OpenMinTeD)
Data interoperability toolkit (OpenMinTeD)petrknoth
 
Perforce Web Services
Perforce Web ServicesPerforce Web Services
Perforce Web ServicesPerforce
 
Feeding the Elephant: Approaching 1PB/Day
Feeding the Elephant: Approaching 1PB/DayFeeding the Elephant: Approaching 1PB/Day
Feeding the Elephant: Approaching 1PB/DayDataWorks Summit
 
Accelerating Software Development with NetApp's P4flex
Accelerating Software Development with NetApp's P4flexAccelerating Software Development with NetApp's P4flex
Accelerating Software Development with NetApp's P4flexPerforce
 
Using Perforce Data in Development at Tableau
Using Perforce Data in Development at TableauUsing Perforce Data in Development at Tableau
Using Perforce Data in Development at TableauPerforce
 
II-SDV 2017: Datafari - Building an Open Source Enterprise Search Solution fr...
II-SDV 2017: Datafari - Building an Open Source Enterprise Search Solution fr...II-SDV 2017: Datafari - Building an Open Source Enterprise Search Solution fr...
II-SDV 2017: Datafari - Building an Open Source Enterprise Search Solution fr...Dr. Haxel Consult
 
Apache Solr crash course
Apache Solr crash courseApache Solr crash course
Apache Solr crash courseTommaso Teofili
 
Search all the things
Search all the thingsSearch all the things
Search all the thingscyberswat
 

Ähnlich wie Mastering Your Universe with P4 Search (20)

Swarm Update
Swarm UpdateSwarm Update
Swarm Update
 
Integrating the Solr search engine
Integrating the Solr search engineIntegrating the Solr search engine
Integrating the Solr search engine
 
Automation with phing
Automation with phingAutomation with phing
Automation with phing
 
Active Directory & LDAP Authentication Without Triggers
Active Directory & LDAP Authentication Without TriggersActive Directory & LDAP Authentication Without Triggers
Active Directory & LDAP Authentication Without Triggers
 
Lucene Bootcamp - 2
Lucene Bootcamp - 2Lucene Bootcamp - 2
Lucene Bootcamp - 2
 
Transferring Changes Between Perforce Servers
Transferring Changes Between Perforce ServersTransferring Changes Between Perforce Servers
Transferring Changes Between Perforce Servers
 
Version Your Cloud: Using Perforce to Manage Your Object Storage
Version Your Cloud: Using Perforce to Manage Your Object StorageVersion Your Cloud: Using Perforce to Manage Your Object Storage
Version Your Cloud: Using Perforce to Manage Your Object Storage
 
Fedora4
Fedora4Fedora4
Fedora4
 
Alfresco Day Stockholm 2015 - Alfresco One
Alfresco Day Stockholm 2015 - Alfresco OneAlfresco Day Stockholm 2015 - Alfresco One
Alfresco Day Stockholm 2015 - Alfresco One
 
HDF Updae
HDF UpdaeHDF Updae
HDF Updae
 
Super Size Your Search
Super Size Your SearchSuper Size Your Search
Super Size Your Search
 
Spring Roo Add-On Development & Distribution
Spring Roo Add-On Development & DistributionSpring Roo Add-On Development & Distribution
Spring Roo Add-On Development & Distribution
 
Data interoperability toolkit (OpenMinTeD)
Data interoperability toolkit (OpenMinTeD)Data interoperability toolkit (OpenMinTeD)
Data interoperability toolkit (OpenMinTeD)
 
Perforce Web Services
Perforce Web ServicesPerforce Web Services
Perforce Web Services
 
Feeding the Elephant: Approaching 1PB/Day
Feeding the Elephant: Approaching 1PB/DayFeeding the Elephant: Approaching 1PB/Day
Feeding the Elephant: Approaching 1PB/Day
 
Accelerating Software Development with NetApp's P4flex
Accelerating Software Development with NetApp's P4flexAccelerating Software Development with NetApp's P4flex
Accelerating Software Development with NetApp's P4flex
 
Using Perforce Data in Development at Tableau
Using Perforce Data in Development at TableauUsing Perforce Data in Development at Tableau
Using Perforce Data in Development at Tableau
 
II-SDV 2017: Datafari - Building an Open Source Enterprise Search Solution fr...
II-SDV 2017: Datafari - Building an Open Source Enterprise Search Solution fr...II-SDV 2017: Datafari - Building an Open Source Enterprise Search Solution fr...
II-SDV 2017: Datafari - Building an Open Source Enterprise Search Solution fr...
 
Apache Solr crash course
Apache Solr crash courseApache Solr crash course
Apache Solr crash course
 
Search all the things
Search all the thingsSearch all the things
Search all the things
 

Mehr von Perforce

How to Organize Game Developers With Different Planning Needs
How to Organize Game Developers With Different Planning NeedsHow to Organize Game Developers With Different Planning Needs
How to Organize Game Developers With Different Planning NeedsPerforce
 
Regulatory Traceability: How to Maintain Compliance, Quality, and Cost Effic...
Regulatory Traceability:  How to Maintain Compliance, Quality, and Cost Effic...Regulatory Traceability:  How to Maintain Compliance, Quality, and Cost Effic...
Regulatory Traceability: How to Maintain Compliance, Quality, and Cost Effic...Perforce
 
Efficient Security Development and Testing Using Dynamic and Static Code Anal...
Efficient Security Development and Testing Using Dynamic and Static Code Anal...Efficient Security Development and Testing Using Dynamic and Static Code Anal...
Efficient Security Development and Testing Using Dynamic and Static Code Anal...Perforce
 
Understanding Compliant Workflow Enforcement SOPs
Understanding Compliant Workflow Enforcement SOPsUnderstanding Compliant Workflow Enforcement SOPs
Understanding Compliant Workflow Enforcement SOPsPerforce
 
Branching Out: How To Automate Your Development Process
Branching Out: How To Automate Your Development ProcessBranching Out: How To Automate Your Development Process
Branching Out: How To Automate Your Development ProcessPerforce
 
How to Do Code Reviews at Massive Scale For DevOps
How to Do Code Reviews at Massive Scale For DevOpsHow to Do Code Reviews at Massive Scale For DevOps
How to Do Code Reviews at Massive Scale For DevOpsPerforce
 
How to Spark Joy In Your Product Backlog
How to Spark Joy In Your Product Backlog How to Spark Joy In Your Product Backlog
How to Spark Joy In Your Product Backlog Perforce
 
Going Remote: Build Up Your Game Dev Team
Going Remote: Build Up Your Game Dev Team Going Remote: Build Up Your Game Dev Team
Going Remote: Build Up Your Game Dev Team Perforce
 
Shift to Remote: How to Manage Your New Workflow
Shift to Remote: How to Manage Your New WorkflowShift to Remote: How to Manage Your New Workflow
Shift to Remote: How to Manage Your New WorkflowPerforce
 
Hybrid Development Methodology in a Regulated World
Hybrid Development Methodology in a Regulated WorldHybrid Development Methodology in a Regulated World
Hybrid Development Methodology in a Regulated WorldPerforce
 
Better, Faster, Easier: How to Make Git Really Work in the Enterprise
Better, Faster, Easier: How to Make Git Really Work in the EnterpriseBetter, Faster, Easier: How to Make Git Really Work in the Enterprise
Better, Faster, Easier: How to Make Git Really Work in the EnterprisePerforce
 
Easier Requirements Management Using Diagrams In Helix ALM
Easier Requirements Management Using Diagrams In Helix ALMEasier Requirements Management Using Diagrams In Helix ALM
Easier Requirements Management Using Diagrams In Helix ALMPerforce
 
How To Master Your Mega Backlog
How To Master Your Mega Backlog How To Master Your Mega Backlog
How To Master Your Mega Backlog Perforce
 
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...Perforce
 
How to Scale With Helix Core and Microsoft Azure
How to Scale With Helix Core and Microsoft Azure How to Scale With Helix Core and Microsoft Azure
How to Scale With Helix Core and Microsoft Azure Perforce
 
Achieving Software Safety, Security, and Reliability Part 2
Achieving Software Safety, Security, and Reliability Part 2Achieving Software Safety, Security, and Reliability Part 2
Achieving Software Safety, Security, and Reliability Part 2Perforce
 
Should You Break Up With Your Monolith?
Should You Break Up With Your Monolith?Should You Break Up With Your Monolith?
Should You Break Up With Your Monolith?Perforce
 
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...Perforce
 
What's New in Helix ALM 2019.4
What's New in Helix ALM 2019.4What's New in Helix ALM 2019.4
What's New in Helix ALM 2019.4Perforce
 
Free Yourself From the MS Office Prison
Free Yourself From the MS Office Prison Free Yourself From the MS Office Prison
Free Yourself From the MS Office Prison Perforce
 

Mehr von Perforce (20)

How to Organize Game Developers With Different Planning Needs
How to Organize Game Developers With Different Planning NeedsHow to Organize Game Developers With Different Planning Needs
How to Organize Game Developers With Different Planning Needs
 
Regulatory Traceability: How to Maintain Compliance, Quality, and Cost Effic...
Regulatory Traceability:  How to Maintain Compliance, Quality, and Cost Effic...Regulatory Traceability:  How to Maintain Compliance, Quality, and Cost Effic...
Regulatory Traceability: How to Maintain Compliance, Quality, and Cost Effic...
 
Efficient Security Development and Testing Using Dynamic and Static Code Anal...
Efficient Security Development and Testing Using Dynamic and Static Code Anal...Efficient Security Development and Testing Using Dynamic and Static Code Anal...
Efficient Security Development and Testing Using Dynamic and Static Code Anal...
 
Understanding Compliant Workflow Enforcement SOPs
Understanding Compliant Workflow Enforcement SOPsUnderstanding Compliant Workflow Enforcement SOPs
Understanding Compliant Workflow Enforcement SOPs
 
Branching Out: How To Automate Your Development Process
Branching Out: How To Automate Your Development ProcessBranching Out: How To Automate Your Development Process
Branching Out: How To Automate Your Development Process
 
How to Do Code Reviews at Massive Scale For DevOps
How to Do Code Reviews at Massive Scale For DevOpsHow to Do Code Reviews at Massive Scale For DevOps
How to Do Code Reviews at Massive Scale For DevOps
 
How to Spark Joy In Your Product Backlog
How to Spark Joy In Your Product Backlog How to Spark Joy In Your Product Backlog
How to Spark Joy In Your Product Backlog
 
Going Remote: Build Up Your Game Dev Team
Going Remote: Build Up Your Game Dev Team Going Remote: Build Up Your Game Dev Team
Going Remote: Build Up Your Game Dev Team
 
Shift to Remote: How to Manage Your New Workflow
Shift to Remote: How to Manage Your New WorkflowShift to Remote: How to Manage Your New Workflow
Shift to Remote: How to Manage Your New Workflow
 
Hybrid Development Methodology in a Regulated World
Hybrid Development Methodology in a Regulated WorldHybrid Development Methodology in a Regulated World
Hybrid Development Methodology in a Regulated World
 
Better, Faster, Easier: How to Make Git Really Work in the Enterprise
Better, Faster, Easier: How to Make Git Really Work in the EnterpriseBetter, Faster, Easier: How to Make Git Really Work in the Enterprise
Better, Faster, Easier: How to Make Git Really Work in the Enterprise
 
Easier Requirements Management Using Diagrams In Helix ALM
Easier Requirements Management Using Diagrams In Helix ALMEasier Requirements Management Using Diagrams In Helix ALM
Easier Requirements Management Using Diagrams In Helix ALM
 
How To Master Your Mega Backlog
How To Master Your Mega Backlog How To Master Your Mega Backlog
How To Master Your Mega Backlog
 
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...
 
How to Scale With Helix Core and Microsoft Azure
How to Scale With Helix Core and Microsoft Azure How to Scale With Helix Core and Microsoft Azure
How to Scale With Helix Core and Microsoft Azure
 
Achieving Software Safety, Security, and Reliability Part 2
Achieving Software Safety, Security, and Reliability Part 2Achieving Software Safety, Security, and Reliability Part 2
Achieving Software Safety, Security, and Reliability Part 2
 
Should You Break Up With Your Monolith?
Should You Break Up With Your Monolith?Should You Break Up With Your Monolith?
Should You Break Up With Your Monolith?
 
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...
 
What's New in Helix ALM 2019.4
What's New in Helix ALM 2019.4What's New in Helix ALM 2019.4
What's New in Helix ALM 2019.4
 
Free Yourself From the MS Office Prison
Free Yourself From the MS Office Prison Free Yourself From the MS Office Prison
Free Yourself From the MS Office Prison
 

KĂźrzlich hochgeladen

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 

KĂźrzlich hochgeladen (20)

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 

Mastering Your Universe with P4 Search

  • 1. # Sven Erik Knop Technical Marketing Manager Ralf Gronkowski Principal Product Consultant
  • 2. #
  • 3. # • Why P4Search? • What is P4Search? • Implementation Details and Demonstration
  • 4. #
  • 5. # p4 files / p4 fstat / ... ??? File names, Changes ... File content? C# .h JAVA PPTX PDF
  • 6. # • Built-in command, since Perforce 2010.1 • Search files stored in P4D based on content – Case sensitive and insensitive searches – Can use regular expressions – Can search through all revisions – Provide context search • Returns depot paths
  • 7. # • A few drawbacks: – Text search only, limited to 4K lines – No search for Metadata such as attributes • Performance concerns: – Limited to 10,000 revisions by default – Memory and CPU consumption – But: lockless with peeking since 2013.3
  • 8. # p4 files/p4 fstat index store search Search engine indexes content Stores it in its own database Users search the index first Index returns a depot path Index and Perforce Server can live on separate hosts
  • 9. # • Lucene – Scalable, high performance indexing – Search Algorithms • Solr – Stand-alone enterprise search server – HTML Administration interface – Extensible • Tika – Content analysis tool
  • 10. # • P4Search – Index queue (processing indexing requests) – Search controller (security) – RESTful API (integration into other tools) – UI (simple searches) • Runs in Jetty
  • 12. # • Changes/Changelists • Branches • Jobs • Users • Workspaces • Depots
  • 13. # • Content • Metadata (whatever that might be)
  • 14. #
  • 15. # • Accessible through p4 files / p4 fstat ...
  • 16. #
  • 17. # • For ordinary folks – p4 edit file – p4 attribute –n tags –v cool file – p4 submit -d “just defined a cool tag on file rev” • For admins – p4 attribute –f –n tags –v cool file#rev • Find them with • p4 fstat -Oa -F "attr-tags=cool" //depot/...
  • 18. # • File content • P4 Metadata • P4 attributes • And the common Metadata if desired
  • 19. #
  • 20. # + other fields
  • 21. # No ACL’s, no permission
  • 22. # • Is query endpoint for users • Has simplified API • Provides P4 authentication (password|ticket) • Filters query results honoring the existing P4 protections
  • 23. # P4Search Search controller Solr Search index
  • 24. # • External index and protection table? • Solution: – Use a programmable search engine – Use Perforce protections to filter results  Users need read access to files to be able to search
  • 25. # • Jetty – Solr • Lucene • Jetty – P4Search • Search queue/Indexer • Search controller • RESTful API • UI
  • 27. # • Download from the Workshop • Follow the provided instructions to install • Run two services – p4search-solr – p4search-jetty
  • 28. # • On first run index your entire depot – You probably don’t want to do this • On submit index new file revs – change-commit trigger on depot location • At any time any given change – curl POST --data commit,change# http://p4search:8080/api/queue/{token}
  • 29. # • Indexing – With trigger P4D, so ultimately any given client and user • Searching – P4Search UI – Piper – Commons – Custom through P4Search API
  • 30. # • Deep dive after learning Lucene/Solr • Starting point p4search/solr/example/solr/collection1/conf – schema.xml – solrconfig.xml
  • 31. #
  • 32. # Sven Erik Knop sknop@perforce.com Ralf Gronkowski rgronkowski@perforce.com @_gronk