PHPackages                             sunyuw/eav\_search - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Search &amp; Filtering](/categories/search)
4. /
5. sunyuw/eav\_search

ActiveLibrary[Search &amp; Filtering](/categories/search)

sunyuw/eav\_search
==================

用于处理非常复杂条件的匹配

v0.1(8y ago)05MITPHPPHP &gt;=7.2.0

Since Apr 28Pushed 8y ago1 watchersCompare

[ Source](https://github.com/onesy/eav_search)[ Packagist](https://packagist.org/packages/sunyuw/eav_search)[ RSS](/packages/sunyuw-eav-search/feed)WikiDiscussions master Synced today

READMEChangelogDependencies (8)Versions (2)Used By (0)

\#EAV search ##当前版本 V0.1 当前版本还是开发版本，目前还没有加上“属性维护”“map-reduce”“属性 版本”等特性，会在后续的开发中添加。 目前只能依赖mysql进行处理，后续会完善Query进而兼容其他关系型数据 库。

\##编写的目的

有一天，产品经理问我。他需要做一个功能，这个功能有一些实体，每个实 体都是属于容一个类型， 具有不少相似的地方，但是大多数都是不相似的，特别是属性。光是查询相 关的属性就有三十多项。

面对这样的情况，略加思索后我认为传统的关系型数据库的使用方式，实际 上已经无法满足需求，SQL当然是可以写出来的，但是这样的SQL是无法维 护的。 产品经理这个时候补充道。他需要能够根据市场变化新增产品类型以及属性 以及属性的查询。

然后我确定行式的处理方式是无法满足需求的。是决定采用一个比较经典的 反模式来处理这个问题。EAV。

\##适用的场景 同类型产品动态添加，细分产品属性众多，且有查询要求。 ##如何使用 当前版本只能有效的存储一个search\_id，通过Id将EAV search和用户 的行式数据库关联上。 ##拆分为列式的优势 列式存储对属性有无不敏感，并且可以较为容易的进行横向分表（至少比起 行式的）。 列式存储对将程序改为Map-Reduce的执行方式也是较为容易的。 ##拆分为列式的劣势 并不是所有情况都适合列式数据库存储，这是一个SQL反模式，副作用也是 有的，比如外键，数据库类型检测是无法使用的，数据的正确需要应用程序 来保证。 ##使用 待完成

###  Health Score

22

—

LowBetter than 22% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity4

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity48

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

2936d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/04c6f89025e93fef0e730f46c3bd91b40cfa21434192cfed2368d7cd3a5172c3?d=identicon)[onesy](/maintainers/onesy)

---

Top Contributors

[![onesy](https://avatars.githubusercontent.com/u/2720820?v=4)](https://github.com/onesy "onesy (2 commits)")

### Embed Badge

![Health badge](/badges/sunyuw-eav-search/health.svg)

```
[![Health](https://phpackages.com/badges/sunyuw-eav-search/health.svg)](https://phpackages.com/packages/sunyuw-eav-search)
```

###  Alternatives

[phlak/directory-lister

PHP directory lister

2.5k1.4k](/packages/phlak-directory-lister)[bacula-web/bacula-web

The open source web based reporting and monitoring tool for Bacula

1537.5k](/packages/bacula-web-bacula-web)[gettyimages/gettyimages-api

Getty Images API SDK - PHP

14161.1k](/packages/gettyimages-gettyimages-api)[t3g/elasticorn

elastic manager based on elastica

155.8k](/packages/t3g-elasticorn)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
