Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adds Weaviate Engine #203

Open
wants to merge 98 commits into
base: main
Choose a base branch
from
Open

Adds Weaviate Engine #203

wants to merge 98 commits into from

Conversation

kosmikdc
Copy link
Collaborator

@kosmikdc kosmikdc commented Nov 20, 2024

Integrates Weaviate into the AIPS stack with support for all of the books features, with some exceptions.

System level changes

  • Notebook image now has a local solr/zk instance allowing the entire system (apart from the external search engine) to operate in a single container.
  • Standardizes spark session generation
  • Removes unused tags from outdoors collection
  • Adds embedded Solr starting/stopping functionality
  • Adds basic model_store for LTR model and feature management

Weaviate

  • Adds weaviate search engine image to build
  • Adds schema and indexing for all collection types
  • Adds custom Spark Connector with support for geo coordinate writing
  • Adds all search features w/ graphQL
    • bm25 search
    • searching against fields
    • filtering (boolean, collection, integer, string
    • sorting (unless bm25)
    • return fields
    • vector search
  • Adds LTR for weaviate, utilizing local feature calculations and reranking
    • Features: query, fuzzy query, bigram query and field value
  • Adds semantic search functionality
  • Adds query time boosting utilizing keyword stuffing
  • Adds index time boosting (also with keyword stuffing)
  • Adds creation of spark views from weaviate collection using paged searching
  • Adds work around for id and _id being reservered

Solr

  • A local solr instance is used for Text tagging and SKG when the set engine is not solr.
  • The notion of a semantic_engine now exists which uses solr for SKG/text tagging

Exceptions

  • Spell Check not implemented - Needs two other containers deployed (maybe hosted?) for support
  • Semantic Search has bad relevance

Daniel Crouch and others added 30 commits August 12, 2024 11:18
- skg.generate_request => skg.transform_request
- Fixes Ch6 bugs
- 15.18 listing organization
- Ch3. Updates print statements, organizes variable positioning
- rerank_quantity => rerank_count
- What happened to 10's feature calculater?
- Finish rerank_query refactor
- Chapter 11: Updates formatting of displaying data
- SKG: {!${defType} ...}
Ch12 still has minor numeric variance.
Ch14 still uses pre-computed model
…nctions

- Finalizes SemanticSearch abstractions and loading
- Opensearch code cleaned
- First pass of schemas partially implemented
- Collection and Engine partially implemented
  - with id and score additional field logic
  - with * and blank search support (unconstrained GET request)
  - return fields, query fields, logging, transform_response
- Slightly improves generic collection logic
Base automatically changed from os_engine to main December 13, 2024 14:27
- Removes problematic unused movie columns
- Ch15 - spark session fix and conditional embedding format (somewhat leaky)
- Fixes batch reading when weaviate collection has a custom id
  - Implements index time boosting utilizing stuffed boosting field
  - Implements query time boosting
  - implements query by id logic
  - implements advanced sorting logic
  - implements advanced filtering logic
  - introduces hack for handling incomplete data models being indexed (weaviate needs values for all fields, products_with_signals_boosts gets written once without all fields)

- lower cases the collection name when retrieving the entity extractor and SKG
- Removes debugging code in: ch3, ch4, ch5, ch7
- strips quotes when using index time boosting in solr (when/why did this break? this isn't currently broken in main)
- lower cases engine names
- weaviate implements filtering on collection
- weaviate sort by score circumvention
- default return fields for weaviate to be all fields, consistent with other engines
- attempt to fix weaviate's indexing of entities
- weaviate LTR stub
- Adds support for non-static solr/zk host
- Re-runs Ch9 for solr
- Reruns ch13
- Cleans up and organizes environment definitions
- Improves solr health check with retries
- Implements hybrid search for weaviate
- Implements ltr.model_store for saving local linear model data/features
- Implements WeaviateLTR with basic query feature. Other query features are stubbed.
- WeaviateSparseSemantic properly integrated
- LTR for weaviate implemented
  - bigram query feature and fuzzy query feature implemented
- Weaviate support for 3.12 query func (absolutely basic)
- Deploys pre built Weaviate Spark 1.3.4a for correct geoCoordinate writing
- Corrects ports and environment vars in solr/zk docker compose
- Fixes reviews data loading, adding weaviate specific transformations to collection

Embedded solr still unstable/with cor creation failure (?)
Weaviate LTR's quality for model 2 could be investigated further.
Weaviate Semantic Search relevance is for final query (at least)
…ate_view_for_collection wv8 cursor loop.

- Adds correct handling of id for Opensearch/Weaviate, and re-adds "id" lines to 8.3
- Alters fuzzy algorithm to account for a range of character limits
- Renames solr host environment var for notebooks to not conflict with solr's
@kosmikdc kosmikdc changed the title [WIP] Weaviate Integration Adds Weaviate Engine Jan 11, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants